使用通用JSON对象作为请求主体

时间:2018-07-03 09:59:09

标签: json spring angular spring-mvc

我有一个控制器,该控制器接收JSON对象作为输入。但是问题在于,JSON的内容会因不同的请求而有所不同,因此Im无法将RequestBody映射到POJO。
有没有一种方法可以将输入参数指定为通用JSONObject,而不必指定特定的POJO。
我尝试了@RequestBody JSONObject inputJson。但这从客户端抛出了错误的请求。
我将Spring 3.2.13和Angular用作前端。
任何帮助深表感谢。谢谢。

2 个答案:

答案 0 :(得分:2)

这将取决于您用于JSON转换的内容。但是您可能需要接受输入为String并生成JSONObject。

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

或将输入作为地图进行处理,然后直接使用即可。大多数版本的Jackson都会为您执行此转换:

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

在地图情况下,您可能不需要JSONObject,但可以根据需要生成它。

答案 1 :(得分:1)

您是否尝试将JSON转换为字符串输入并转换回JSON?选中此thread