【问题标题】:Using generic JSON Object as Request Body使用通用 JSON 对象作为请求正文
【发布时间】:2018-07-03 09:59:09
【问题描述】:

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

【问题讨论】:

    标签: json spring angular spring-mvc


    【解决方案1】:

    这在一定程度上取决于您用于 JSON 转换的内容。但您可能需要将输入作为字符串接受并生成 JSONObject。

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

    或者将输入处理为地图并直接使用它。大多数版本的 Jackson 都会为您执行此转换:

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

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

    【讨论】:

      【解决方案2】:

      您是否尝试将 JSON 转换为字符串输入并转换回 JSON?检查这个thread

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-02-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-28
        • 2019-04-19
        • 2017-03-10
        相关资源
        最近更新 更多