spring mvc controller接受具有可变数量的键/值的JSON对象

 黄石幽兰it 发布于 2023-02-08 06:02

我知道我需要接受的JSON对象始终是单键和值.我尝试使用@RequestBody Map和@RequestBody Map编写我的Spring MVC控制器,但是我总是得到400 Bad Request.当我将@RequestBody更改为String时,我看到我的数据通过,并且没有返回Bad Request响应.是否可以编写一些内容来接受任意JSON对象,该对象始终符合作为单个单个键的合同值?

@RequestMapping(value = "/advancedSearch", method = RequestMethod.POST,consumes ="application/json",produces = "application/json")
@ResponseBody
public MyResponse performAdvancedSearch(@RequestBody String advancedFormData) throws Exception{

这是现在使用String的映射...

样品JSON-

    {"name":"frank","Type":"Lumber"}

当从前端发布时,我调用JSON.stringify()来创建data.Again,JSON总是很简单,没有嵌套列表/对象只是直接键/值.服务器端永远不会知道有多少个键值对进来,并且它不知道所有潜在的键,所以我不能创建一个简单的POJO.

1 个回答
  • 让你的生活变得简单,创造一个班级

    public class AdvancedFormData
        private String name;
        private String type; // make it lower case in your JSON too
        // appropriate getters and setters and a no-arg constructor for Jackson
    }
    

    并使用

    public MyResponse performAdvancedSearch(@RequestBody AdvancedFormData advancedFormData) throws Exception{
    

    2023-02-08 06:31 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有