Как преобразовать входящий запрос String в JSON-запрос в Springboot - PullRequest
0 голосов
/ 14 января 2019

Я хочу отправить строку, которая представляет JSON, в запросе к приложению Springboot. Я знаю, что если мы отправим JSON-запрос и создадим эквивалентную объектную модель этого JSON-запроса, то Springboot автоматически сопоставит входящий JSON-запрос с Java-объектом.

Я могу преобразовать String в JSON, а затем в его объектную модель, используя Jackson, как только мое приложение Springboot получит строковый запрос, но я не хочу этого делать, мне нужно иметь преобразование, подобное JSON, в преобразование объектов по умолчанию, сопоставление Springboot ,

Нужна помощь для достижения того же.

Ниже мой контроллер:

@PostMapping(value = "/eventListener/v5",
consumes = MediaType.APPLICATION_JSON_VALUE)
    public String receiveEventForV5(@RequestBody EventV5 event){
        logger.info(" FaultEvent Details : " + event);
        eventValidationService.validateEvent(VES5_VERSION,event);
        return "FaultEvent received" + event;
    }

И строка запроса:

«событие»: {

"commonEventHeader": {
  "version": 2.0,
  "eventName": "abc",
  "domain": "fault1",
  "eventId": "001-000000000001",
  "eventType": "adadas",
  "nfcNamingCode": "ijk",
  "nfNamingCode": "add",
  "sourceId": "source_entity_id_123abc",
  "sourceName": "source_entity_name_oam",
  "reportingEntityId": "reporting_entity_id_123abc",
  "reportingEntityName": "reporting_entity_name_oam",
  "priority": "High",
  "startEpochMicrosec": 1527089079615,
  "lastEpochMicrosec": 1527089079615,
  "sequence": 0
},

Он по-прежнему показывает неподдерживаемый тип данных.

1 Ответ

0 голосов
/ 14 января 2019

Решение 1:

Вы можете использовать HandlerMethodArgumentResolver для преобразования тела строки в объект, используя ObjectMapper в весеннем MVC.

Например, как использовать HandlerMethodArgumentResolver: https://github.com/jinternals/custom-argument-resolvers-spring-controller

Решение 2:

Попробуйте использовать специальные конвертеры сообщений http, используя AbstractHttpMessageConverter.

...