如何在Springboot中将传入的String请求转换为JSON请求

时间:2019-01-14 04:46:12

标签: spring-boot request-mapping

我想在对Springboot应用程序的请求中发送一个表示JSON的字符串。我知道,如果我们发送JSON请求,并创建该JSON请求的等效Object模型,那么Springboot将自动将传入的JSON请求映射到Java Object。

一旦我的springboot应用程序接收到字符串请求,我就可以使用Jackson将String转换为JSON,然后转换为其对象模型,但是我不想那样做,默认情况下,我需要将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 :(得分:0)

解决方案1:

您可以使用HandlerMethodArgumentResolver在Spring MVC中使用ObjectMapper将字符串主体转换为对象。

例如如何使用HandlerMethodArgumentResolver:  https://github.com/jinternals/custom-argument-resolvers-spring-controller

解决方案2:

尝试使用AbstractHttpMessageConverter自定义http消息转换器。