internal static TextLine DeserializeTextLine(JsonElement element) { string text = default; IReadOnlyList <float> boundingBox = default; Optional <FormRecognizerLanguage> language = default; IReadOnlyList <TextWord> words = default; Optional <TextAppearance> appearance = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("text")) { text = property.Value.GetString(); continue; } if (property.NameEquals("boundingBox")) { List <float> array = new List <float>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(item.GetSingle()); } boundingBox = array; continue; } if (property.NameEquals("language")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } language = new FormRecognizerLanguage(property.Value.GetString()); continue; } if (property.NameEquals("words")) { List <TextWord> array = new List <TextWord>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(TextWord.DeserializeTextWord(item)); } words = array; continue; } if (property.NameEquals("appearance")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } appearance = TextAppearance.DeserializeTextAppearance(property.Value); continue; } } return(new TextLine(text, boundingBox, Optional.ToNullable(language), words, appearance.Value)); }
internal static ReadResult DeserializeReadResult(JsonElement element) { int page = default; float angle = default; float width = default; float height = default; LengthUnit unit = default; Optional <FormRecognizerLanguage> language = default; Optional <IReadOnlyList <TextLine> > lines = default; Optional <IReadOnlyList <SelectionMark> > selectionMarks = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("page")) { page = property.Value.GetInt32(); continue; } if (property.NameEquals("angle")) { angle = property.Value.GetSingle(); continue; } if (property.NameEquals("width")) { width = property.Value.GetSingle(); continue; } if (property.NameEquals("height")) { height = property.Value.GetSingle(); continue; } if (property.NameEquals("unit")) { unit = property.Value.GetString().ToLengthUnit(); continue; } if (property.NameEquals("language")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } language = new FormRecognizerLanguage(property.Value.GetString()); continue; } if (property.NameEquals("lines")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <TextLine> array = new List <TextLine>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(TextLine.DeserializeTextLine(item)); } lines = array; continue; } if (property.NameEquals("selectionMarks")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <SelectionMark> array = new List <SelectionMark>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(SelectionMark.DeserializeSelectionMark(item)); } selectionMarks = array; continue; } } return(new ReadResult(page, angle, width, height, unit, Optional.ToNullable(language), Optional.ToList(lines), Optional.ToList(selectionMarks))); }