Как получить необработанную строку json от Rabbit в Java без каких-либо изменений? - PullRequest
0 голосов
/ 10 июля 2020

У меня есть приложение для весенней загрузки, настроенное с помощью RabbitMqListener. Он должен получить JSON данные следующего формата: (показывает образец)

{ "name" :"abc",  
"key" : "somekey",
"value" : {"data": {"notes": "**foo \u0026 bar"}}** 
}

Эти данные представляют некоторую информацию. который должен использоваться только для обработки только для чтения, и приложение Spring приемника должно получать его как есть (необработанная форма).

Я имею в виду, если я утверждаю узел value в приложении Spring с вводом, который был опубликован в очереди, он должен быть равен.

Этого просто не происходит. Я всегда получаю значение в приложении Spring как foo & bar, но я хотел его в исходном виде, без разговора о \ u кодах.

Я пробую несколько подходов,

  1. Конвертер Jackaon2JsonMessage,
  2. передача байтов из Message.getBody() - byte[] в mapper.readValue() в обработчике Rabbit.
  3. Использование JSON -simple, библиотеки gson

Почему так сложно получить данные в том виде, в каком они есть, без какого-либо преобразования или перевода. Нужно ли мне использовать альтернативный подход?

Любая помощь приветствуется

1 Ответ

1 голос
/ 10 июля 2020

Пробовали ли вы явно включить экранирование символов, отличных от ascii, на вашем ObjectMapper?

mapper.getFactory().configure(JsonGenerator.Feature.ESCAPE_NON_ASCII, true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...