Как преобразовать SinkRecord в JSON строку? - PullRequest
1 голос
/ 04 февраля 2020

Представьте, 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 Ответ

1 голос
/ 04 февраля 2020

Когда вы создаете SinkRecord, у вас есть схема ключа и значения с ключом и значением объекта. Этими объектами должны быть Struct экземпляры , которые должны быть созданы с совпадающими Schema

. В конфигурации соединителя вы затем использовали бы JSONConverter (или другой преобразователь), чтобы получить Серийный выход

...