gpt4 book ai didi

java - 如何访问在 POST 正文中发送的已转换 JSON 对象的字段?

转载 作者:行者123 更新时间:2023-11-30 06:17:20 24 4
gpt4 key购买 nike

我的 Spring @Controller 需要访问 JSON 格式的传递对象的字段。我想避免构建许多类来映射每个请求响应。例如,我需要连接存储两个外键。它们作为 {"key1": 1,"key2": 2} 传递给 Controller ​​。如果我没有具有 2 个字段来映射这些属性的对象,如何访问这些字段?如何设置Spring Controller 方法?

我的代码:

@RequestMapping(value = "/addProductPart", method = RequestMethod.POST, consumes = "application/json")
@ResponseBody
public String addProductPart(Model model, @RequestBody Object json,
BindingResult result){

// access somehow key1 and of json Object

更新:我知道我可以使用 RequestMethod.GET@RequestParam 让它工作,但是因为我修改了数据,所以我需要 RequestMethod.POST RequestMethod.PUT.

已解决:

@RequestMapping(value = "/addProductPart", method = RequestMethod.PUT, consumes = "application/json")
@ResponseBody
public String addProductPart(Model model, @RequestBody Object obj){
...
int p = (Integer)((Map)obj).get("part");
...
}

最佳答案

Spring 默认使用 Jackson 反序列化 JSON。如果您指定 Object 作为参数类型,Jackson 会将 JSON 反序列化为 LinkedHashMap。您可以转换变量并通过 Map#get(Object) 访问元素。

或者,您可以将方法参数声明为适合 JSON 结构的某种 POJO 类型,Jackson 将反序列化为该类型。然后您可以使用它的 getter 来检索您的数据。

关于java - 如何访问在 POST 正文中发送的已转换 JSON 对象的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25953056/

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