in zetasql-toolkit-core/src/main/java/com/google/zetasql/toolkit/catalog/io/JsonCatalogDeserializer.java [224:254]
public SimpleTable deserialize(
JsonElement jsonElement, java.lang.reflect.Type type, JsonDeserializationContext context)
throws JsonParseException {
JsonObject jsonObject =
getAsJsonObject(
jsonElement, "Invalid JSON table: " + jsonElement + ". Tables should be objects.");
String tableName =
getFieldAsString(
jsonObject,
"name",
"Invalid JSON table: " + jsonElement + ". Field name should be string.");
JsonArray columns =
getFieldAsJsonArray(
jsonObject,
"columns",
"Invalid JSON table: " + jsonElement + ". Field columns should be array of columns.");
List<SimpleColumn> parsedColumns =
columns.asList().stream()
.map(
jsonColumn ->
getAsJsonObject(
jsonColumn,
"Invalid JSON column " + jsonColumn + ". Should be JSON object."))
.map(jsonColumn -> deserializeSimpleColumn(tableName, jsonColumn))
.collect(Collectors.toList());
return new SimpleTable(tableName, parsedColumns);
}