如何使用Spring从JSON请求构造对象和相关对象

时间:2011-01-01 20:56:57

标签: json spring spring-mvc

我正在向Spring 3.0控制器发布JSON请求。方法签名是......

@RequestMapping(value="/add", method=RequestMethod.POST)
public @ResponseBody Map<String, ? extends Object> add(@RequestBody Entry)

JSON看起来像这样......

{"user":"1"}

条目对象有一个用户类型的属性。

提交请求时会抛出此错误,

org.codehaus.jackson.map.JsonMappingException: Can not construct instance of com.x.y.z.Entry, problem: no suitable creator method found

我猜这个错误是因为Entry上的用户是User类型而不是String类型(在JSON上传入“1”)。

有没有办法让“1”进入并使用它来创建一个真正的User对象(在这种情况下通过在数据库中查找)?

1 个答案:

答案 0 :(得分:2)

Entry是否有无参数构造函数?

这是你第一个看的地方。通常会出现这种性质的错误,因为代码正在寻找无参数构造函数来创建Entry with。

您的想法,即创建User作为真实用户很好,但是应该在调用此方法之后,在某些其他层或其他内容中完成。你想通过不干扰json的编组来保持简单。您可以使用其他图层添加此内容。