public JsonNode toJson()

in jsonschema-kafkaconnect-converter/src/main/java/com/amazonaws/services/schemaregistry/kafkaconnect/jsonschema/typeconverters/StructTypeConverter.java [187:219]


    public JsonNode toJson(final Schema schema,
                           final Object value,
                           final JsonSchemaDataConfig config) {
        connectValueToJsonNodeConverter = new ConnectValueToJsonNodeConverter(config);
        Struct struct = (Struct) value;
        if (!struct.schema()
                .equals(schema)) {
            throw new DataException("Mismatching schema.");
        }

        // Handle JSON Union/One Of type Schemas that are not resulted from Optional
        // e.g.
        //  {"oneOf":[{"type":"integer","connect.type":"int32"},{"type":"string"}]}

        if (JsonSchemaConverterConstants.JSON_SCHEMA_TYPE_ONEOF.equals(schema.name())) {
            for (Field field : schema.fields()) {
                Object obj = struct.get(field);
                if (obj != null) {
                    return connectValueToJsonNodeConverter.convertToJson(field.schema(), obj);
                }
            }
            return connectValueToJsonNodeConverter.convertToJson(schema, null);
        } else {
            ObjectNode obj = JSON_NODE_FACTORY.objectNode();
            for (Field field : schema.fields()) {
                if (struct.get(field) != null) {
                    obj.set(field.name(),
                            connectValueToJsonNodeConverter.convertToJson(field.schema(), struct.get(field)));
                }
            }
            return obj;
        }
    }