Использование универсального объекта JSON в качестве тела запроса - PullRequest
0 голосов
/ 03 июля 2018

У меня есть контроллер, который получает JSON Object в качестве входных данных. Но проблема в том, что содержимое JSON будет различным для разных запросов, поэтому я не могу сопоставить RequestBody с POJO.
Есть ли способ, которым я могу указать входной параметр как общий JSONObject без указания конкретного POJO.
Я пытался @RequestBody JSONObject inputJson. Но это бросает плохой запрос со стороны клиента.
Я использую пружину 3.2.13 и Angular в качестве переднего конца.
Буду признателен за любую оказанную помощь. Спасибо.

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Это будет немного зависеть от того, что вы используете для преобразования JSON. Но вам, вероятно, нужно принять входные данные в виде строки и сгенерировать JSONObject.

@RequestBody String inputJson
JSONObject jsonObj = new JSONObject(inputJson);

Или обработайте ввод как карту и просто используйте его напрямую. Большинство версий Джексона выполнят это преобразование для вас:

@RequestBody Map<String, Object> inputData)
 JSONObject jsonObj = new JSONObject(inputData);

В случае карты вам может не понадобиться JSONObject, но вы можете сгенерировать его, если хотите.

0 голосов
/ 03 июля 2018

Вы пытались преобразовать JSON как строковый ввод и преобразовать обратно в JSON? Проверьте это поток .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...