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