in zetasql-toolkit-core/src/main/java/com/google/zetasql/toolkit/catalog/io/JsonCatalogDeserializer.java [160:178]
private static boolean getFieldAsBoolean(
JsonObject jsonObject, String fieldName, String errorMessage) {
JsonElement field = jsonObject.get(fieldName);
if (Objects.isNull(field) || !field.isJsonPrimitive()) {
throw new JsonParseException(errorMessage);
}
JsonPrimitive primitive = field.getAsJsonPrimitive();
boolean isTrueOrFalseString =
primitive.isString()
&& ImmutableList.of("true", "false").contains(primitive.getAsString().toLowerCase());
if (!primitive.isBoolean() && !isTrueOrFalseString) {
throw new JsonParseException(errorMessage);
}
return primitive.getAsBoolean();
}