internal static DocumentEntity DeserializeDocumentEntity(JsonElement element) { string category = default; Optional <string> subCategory = default; string content = default; Optional <IReadOnlyList <BoundingRegion> > boundingRegions = default; IReadOnlyList <DocumentSpan> spans = default; float confidence = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("category")) { category = property.Value.GetString(); continue; } if (property.NameEquals("subCategory")) { subCategory = property.Value.GetString(); continue; } if (property.NameEquals("content")) { content = property.Value.GetString(); continue; } if (property.NameEquals("boundingRegions")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <BoundingRegion> array = new List <BoundingRegion>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(BoundingRegion.DeserializeBoundingRegion(item)); } boundingRegions = array; continue; } if (property.NameEquals("spans")) { List <DocumentSpan> array = new List <DocumentSpan>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(DocumentSpan.DeserializeDocumentSpan(item)); } spans = array; continue; } if (property.NameEquals("confidence")) { confidence = property.Value.GetSingle(); continue; } } return(new DocumentEntity(category, subCategory.Value, content, Optional.ToList(boundingRegions), spans, confidence)); }
internal static DocumentTable DeserializeDocumentTable(JsonElement element) { int rowCount = default; int columnCount = default; IReadOnlyList <DocumentTableCell> cells = default; Optional <IReadOnlyList <BoundingRegion> > boundingRegions = default; IReadOnlyList <DocumentSpan> spans = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("rowCount")) { rowCount = property.Value.GetInt32(); continue; } if (property.NameEquals("columnCount")) { columnCount = property.Value.GetInt32(); continue; } if (property.NameEquals("cells")) { List <DocumentTableCell> array = new List <DocumentTableCell>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(DocumentTableCell.DeserializeDocumentTableCell(item)); } cells = array; continue; } if (property.NameEquals("boundingRegions")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <BoundingRegion> array = new List <BoundingRegion>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(BoundingRegion.DeserializeBoundingRegion(item)); } boundingRegions = array; continue; } if (property.NameEquals("spans")) { List <DocumentSpan> array = new List <DocumentSpan>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(DocumentSpan.DeserializeDocumentSpan(item)); } spans = array; continue; } } return(new DocumentTable(rowCount, columnCount, cells, Optional.ToList(boundingRegions), spans)); }
internal static AnalyzedDocument DeserializeAnalyzedDocument(JsonElement element) { string docType = default; Optional <IReadOnlyList <BoundingRegion> > boundingRegions = default; IReadOnlyList <DocumentSpan> spans = default; IReadOnlyDictionary <string, DocumentField> fields = default; float confidence = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("docType")) { docType = property.Value.GetString(); continue; } if (property.NameEquals("boundingRegions")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <BoundingRegion> array = new List <BoundingRegion>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(BoundingRegion.DeserializeBoundingRegion(item)); } boundingRegions = array; continue; } if (property.NameEquals("spans")) { List <DocumentSpan> array = new List <DocumentSpan>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(DocumentSpan.DeserializeDocumentSpan(item)); } spans = array; continue; } if (property.NameEquals("fields")) { Dictionary <string, DocumentField> dictionary = new Dictionary <string, DocumentField>(); foreach (var property0 in property.Value.EnumerateObject()) { dictionary.Add(property0.Name, DocumentField.DeserializeDocumentField(property0.Value)); } fields = dictionary; continue; } if (property.NameEquals("confidence")) { confidence = property.Value.GetSingle(); continue; } } return(new AnalyzedDocument(docType, Optional.ToList(boundingRegions), spans, fields, confidence)); }
internal static DocumentParagraph DeserializeDocumentParagraph(JsonElement element) { Optional <ParagraphRole> role = default; string content = default; Optional <IReadOnlyList <BoundingRegion> > boundingRegions = default; IReadOnlyList <DocumentSpan> spans = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("role")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } role = new ParagraphRole(property.Value.GetString()); continue; } if (property.NameEquals("content")) { content = property.Value.GetString(); continue; } if (property.NameEquals("boundingRegions")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <BoundingRegion> array = new List <BoundingRegion>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(BoundingRegion.DeserializeBoundingRegion(item)); } boundingRegions = array; continue; } if (property.NameEquals("spans")) { List <DocumentSpan> array = new List <DocumentSpan>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(DocumentSpan.DeserializeDocumentSpan(item)); } spans = array; continue; } } return(new DocumentParagraph(Optional.ToNullable(role), content, Optional.ToList(boundingRegions), spans)); }
internal static DocumentField DeserializeDocumentField(JsonElement element) { DocumentFieldType type = default; Optional <string> valueString = default; Optional <DateTimeOffset> valueDate = default; Optional <TimeSpan> valueTime = default; Optional <string> valuePhoneNumber = default; Optional <double> valueNumber = default; Optional <int> valueInteger = default; Optional <V3SelectionMarkState> valueSelectionMark = default; Optional <DocumentSignatureType> valueSignature = default; Optional <string> valueCountryRegion = default; Optional <IReadOnlyList <DocumentField> > valueArray = default; Optional <IReadOnlyDictionary <string, DocumentField> > valueObject = default; Optional <CurrencyValue> valueCurrency = default; Optional <string> content = default; Optional <IReadOnlyList <BoundingRegion> > boundingRegions = default; Optional <IReadOnlyList <DocumentSpan> > spans = default; Optional <float> confidence = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("type")) { type = property.Value.GetString().ToDocumentFieldType(); continue; } if (property.NameEquals("valueString")) { valueString = property.Value.GetString(); continue; } if (property.NameEquals("valueDate")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } valueDate = property.Value.GetDateTimeOffset("D"); continue; } if (property.NameEquals("valueTime")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } valueTime = property.Value.GetTimeSpan("T"); continue; } if (property.NameEquals("valuePhoneNumber")) { valuePhoneNumber = property.Value.GetString(); continue; } if (property.NameEquals("valueNumber")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } valueNumber = property.Value.GetDouble(); continue; } if (property.NameEquals("valueInteger")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } valueInteger = property.Value.GetInt32(); continue; } if (property.NameEquals("valueSelectionMark")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } valueSelectionMark = new V3SelectionMarkState(property.Value.GetString()); continue; } if (property.NameEquals("valueSignature")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } valueSignature = new DocumentSignatureType(property.Value.GetString()); continue; } if (property.NameEquals("valueCountryRegion")) { valueCountryRegion = property.Value.GetString(); continue; } if (property.NameEquals("valueArray")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <DocumentField> array = new List <DocumentField>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(DeserializeDocumentField(item)); } valueArray = array; continue; } if (property.NameEquals("valueObject")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } Dictionary <string, DocumentField> dictionary = new Dictionary <string, DocumentField>(); foreach (var property0 in property.Value.EnumerateObject()) { dictionary.Add(property0.Name, DeserializeDocumentField(property0.Value)); } valueObject = dictionary; continue; } if (property.NameEquals("valueCurrency")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } valueCurrency = CurrencyValue.DeserializeCurrencyValue(property.Value); continue; } if (property.NameEquals("content")) { content = property.Value.GetString(); continue; } if (property.NameEquals("boundingRegions")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <BoundingRegion> array = new List <BoundingRegion>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(BoundingRegion.DeserializeBoundingRegion(item)); } boundingRegions = array; continue; } if (property.NameEquals("spans")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <DocumentSpan> array = new List <DocumentSpan>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(DocumentSpan.DeserializeDocumentSpan(item)); } spans = array; continue; } if (property.NameEquals("confidence")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } confidence = property.Value.GetSingle(); continue; } } return(new DocumentField(type, valueString.Value, Optional.ToNullable(valueDate), Optional.ToNullable(valueTime), valuePhoneNumber.Value, Optional.ToNullable(valueNumber), Optional.ToNullable(valueInteger), Optional.ToNullable(valueSelectionMark), Optional.ToNullable(valueSignature), valueCountryRegion.Value, Optional.ToList(valueArray), Optional.ToDictionary(valueObject), Optional.ToNullable(valueCurrency), content.Value, Optional.ToList(boundingRegions), Optional.ToList(spans), Optional.ToNullable(confidence))); }
internal static DocumentTableCell DeserializeDocumentTableCell(JsonElement element) { Optional <DocumentTableCellKind> kind = default; int rowIndex = default; int columnIndex = default; Optional <int> rowSpan = default; Optional <int> columnSpan = default; string content = default; Optional <IReadOnlyList <BoundingRegion> > boundingRegions = default; IReadOnlyList <DocumentSpan> spans = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("kind")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } kind = new DocumentTableCellKind(property.Value.GetString()); continue; } if (property.NameEquals("rowIndex")) { rowIndex = property.Value.GetInt32(); continue; } if (property.NameEquals("columnIndex")) { columnIndex = property.Value.GetInt32(); continue; } if (property.NameEquals("rowSpan")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } rowSpan = property.Value.GetInt32(); continue; } if (property.NameEquals("columnSpan")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } columnSpan = property.Value.GetInt32(); continue; } if (property.NameEquals("content")) { content = property.Value.GetString(); continue; } if (property.NameEquals("boundingRegions")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <BoundingRegion> array = new List <BoundingRegion>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(BoundingRegion.DeserializeBoundingRegion(item)); } boundingRegions = array; continue; } if (property.NameEquals("spans")) { List <DocumentSpan> array = new List <DocumentSpan>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(DocumentSpan.DeserializeDocumentSpan(item)); } spans = array; continue; } } return(new DocumentTableCell(Optional.ToNullable(kind), rowIndex, columnIndex, Optional.ToNullable(rowSpan), Optional.ToNullable(columnSpan), content, Optional.ToList(boundingRegions), spans)); }