如何将SinkRecord转换为JSON字符串?

时间:2020-02-03 22:41:33

标签: apache-kafka apache-kafka-connect

想象myAPICreate需要一个JSON字符串。

public void put(Collection<SinkRecord> collection) {
        for (SinkRecord record : collection) {
            JSONObject recordJson = toJSON(record.value());
            String recordJsonString = recordJson.toString();

            myAPICreate(recordJsonString);
        }
    }

toJSON是我定义的助手,它仅记录并返回JSONObject。

JSONObject json = new JSONObject()
  .put("a", record.getString("a"))
  .put("b", record.getString("b"))
  .put("c", record.getString("c"));

我觉得我可能在这里做了很多多余的工作。是否有必要将put中的代码转换为JSON或是否有使用转换器的方法,以使record已经作为JSON或JSON字符串出现?然后我可以通过myAPICreate(record.value().toString())而不必手动进行操作?

1 个答案:

答案 0 :(得分:1)

create a SinkRecord时,您将拥有一个带有键和值对象的键和值架构。这些对象应该是Struct instances,并且必须使用匹配的Schema

创建

在连接器配置中,您将随后使用JSONConverter(或其他转换器)获取序列化的输出