gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 13:57:39 36 4
gpt4 key购买 nike

我知道我需要接受的 JSON 对象将始终是单个键和值。我试图用@RequestBody Map 和@RequestBody Map 编写我的Spring MVC Controller ,但是我总是收到400 Bad Request。当我将我的@RequestBody 更改为字符串时,我看到我的数据通过并且没有返回错误请求响应。是否可以编写一些东西来接受任意 JSON 对象,该对象将始终符合作为单个键的契约(Contract)值(value)?

@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() 来创建数据。再次,JSON 总是像这样简单,没有嵌套列表/对象,只是直接键/值。服务器端永远不知道会有多少键值对进入,它不知道所有潜在的键,所以我不能创建一个简单的 POJO。

最佳答案

让你的生活变得简单并创建一个类

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{

关于java - spring mvc Controller 接受具有可变数量的键/值的JSON对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20790634/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com