Как предотвратить появление полей с нулевым значением в Avro IDL, чтобы усложнить сообщение JSON в теме KafkaJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как предотвратить появление полей с нулевым значением в Avro IDL, чтобы усложнить сообщение JSON в теме Kafka

Сообщение Anonymous »

У меня есть разумная сложная иерархия объектов, которую я построил в IDL (только очень небольшая часть):

Код: Выделить всё

record Action {
Location location;
GeneralInformation? generalInformation=null
}
Сгенерированный исходный код содержит все классы. Все это компилируется, и я вижу сообщения, появляющиеся в шине сообщений. Эти сообщения используются другой стороной, и структура имеет значение.
Однако, когда я просматриваю сообщение по теме, я вижу:

Код: Выделить всё

{ "header": {
"sender": "generator",
"receiver": "local party"
},
"generalInformation": {
"nl.itjer.fin.actions.model.GeneralInformation": {
"reference": "ENX240042545",
"affectingParty": "DXBE98s",
"IBAN": "NL35BNQ2577899"
}
}
}
Сделав поле необязательным или допускающим значение NULL, элемент GeneralInformation получает дополнительный уровень с полным квалифицированным именем. Я вижу это для всех необязательных полей (добавленных вопросительным знаком). В отличие от обязательного поля, такого как заголовок.
Есть ли способ получить «чистый» JSON без дополнительного слоя с полностью определенным типом элемента?
Еще вопрос: тестирую это в теме, а это отнимает много времени. Итак, я захотел написать модульные тесты:

Код: Выделить всё

com.fasterxml.jackson.databiObjectMapper serializer = new ObjectMapper();
serializer.registerModule(new com.fasterxml.jackson.dataformat.avro.AvroModule());
assertEquals(-1, serializer.writeValueAsString(myObject).indexOf("nl.itjer"))
Но это приводит меня в ад зависимостей (из-за введения зависимости, содержащей AvroModule). Я, вероятно, смогу решить эту проблему, но мне хотелось бы знать, есть ли другие способы использования моих существующих зависимостей для проверки и проверки формата json.
версии:

Код: Выделить всё

org.apache.avro(including mvn generator Avro-plugin): 1.11.2
com.fasterxml.jackson 2.15.4
java: 21
Заранее благодарим за ваше время и ответы!

Подробнее здесь: https://stackoverflow.com/questions/788 ... in-kafka-t
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • При выполнении org.apache.avro:avro-maven-plugin:1.11.3:schema: org/apache/avro/Schema$Parser отсутствовал необходимый к
    Anonymous » » в форуме JAVA
    0 Ответы
    69 Просмотры
    Последнее сообщение Anonymous
  • Котлин с нулевым значением против типов с нулевым значением
    Anonymous » » в форуме Android
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Как я могу усложнить свои проекты Dotnet и содержимое кода? [закрыто]
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • C# и AVRO. Проблема декодирование заголовка AVRO
    Anonymous » » в форуме C#
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • Что мне нужно установить для Avro-tools.jar, чтобы работать с Snappy-Compresed Avro-файлами?
    Anonymous » » в форуме JAVA
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»