internal static DataTable DeserializeDataTable(JsonElement element)
        {
            int rows    = default;
            int columns = default;
            IReadOnlyList <DataTableCell> cells = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("rows"))
                {
                    rows = property.Value.GetInt32();
                    continue;
                }
                if (property.NameEquals("columns"))
                {
                    columns = property.Value.GetInt32();
                    continue;
                }
                if (property.NameEquals("cells"))
                {
                    List <DataTableCell> array = new List <DataTableCell>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(DataTableCell.DeserializeDataTableCell(item));
                    }
                    cells = array;
                    continue;
                }
            }
            return(new DataTable(rows, columns, cells));
        }
 internal FormTableCell(DataTableCell dataTableCell, IReadOnlyList <ReadResult> readResults, int pageNumber)
     : base(new BoundingBox(dataTableCell.BoundingBox), pageNumber, dataTableCell.Text)
 {
     ColumnIndex   = dataTableCell.ColumnIndex;
     ColumnSpan    = dataTableCell.ColumnSpan ?? 1;
     Confidence    = dataTableCell.Confidence;
     IsFooter      = dataTableCell.IsFooter ?? false;
     IsHeader      = dataTableCell.IsHeader ?? false;
     RowIndex      = dataTableCell.RowIndex;
     RowSpan       = dataTableCell.RowSpan ?? 1;
     FieldElements = dataTableCell.Elements != null
         ? FormField.ConvertTextReferences(dataTableCell.Elements, readResults)
         : new List <FormElement>();
 }