【发布时间】:2016-01-31 03:09:35
【问题描述】:
我已经使用 Spring boot 有一段时间了,所以我可以说我对使用它非常满意。
但是有一个问题我永远无法解决。 当我希望我的 Spring 引导服务器使用来自前端的 JSON 对象时,我通常像这样使用@RequestBody: 如果 JSON 对象如下所示:
{"name":"Jason"}
我会像这样创建一个 POJO:
public class User{
private String name;
public void setName(String name){
this.name=name;
}
public String getName(){
return this.name
}
}
然后在我的主控制器中,我会像这样简单地使用@RequestBody:
@RequestMapping(value="createUser", method = RequestMethod.POST)
public void createUser(@RequestBody User user){
//code here
}
这会起作用,因为 JSON 对象中的键“name”与 Java User 对象的属性“name”匹配。
但是,在我当前的项目中,我必须使用带有 {" # Name ":"Jason"} 之类的键的 JSON 对象
在这种情况下,我无法创建带有名为#Name 的属性的 POJO 对象,因为显然对象的属性不能以 # 开头,也不能有空格。
当遇到这样的问题时,我通常会这样做
@RequestBody HashMap<String, String> map
然后
User newUser = new User();
newUser.setName(map.get(" # Name"));
但是,当您有一个包含 40 多个键的 JSON 对象时,这可能会变得很麻烦。
有没有更简单的方法来解析带有在 Java 中无效的键的 JSON 对象?
非常感谢!
【问题讨论】:
标签: java json spring spring-mvc spring-boot