使用Jackson&amp ;;将对象列表序列化为Json。 Spring的MVC

时间:2012-03-21 14:46:40

标签: json serialization spring-mvc jackson

我正在研究一个项目,我需要以json格式返回一个对象列表。我正在使用带有jackson库的Spring-mvc框架来进行序列化。

我想要一个直接包含对象的json结构,而不是'name:对象数组'。

这是我的简化代码:

@RequestMapping(method = RequestMethod.GET, value = "/clients")
public List getClients(
        @RequestParam(value = "estat", required = false) String estat
        throws Exception {

    List<Clients> l = s.mdClients(estat);
    return l;
}

你看到的这个“返回l”直接转向Jackson,而jackson将'l'转换为如下结构:

{
  "ClientsList": [
    {
      "x": "2",
      "y": "5"
    }
]}

问题是根“ClientsList”。我想在没有root的情况下得到这个输出:

{
  [
    {
      "x": "2",
      "y": "5"
    }
]}

那么,有人可以帮忙吗?提前谢谢!

2 个答案:

答案 0 :(得分:5)

尝试在方法声明中添加@ResponseBody

public @ResponseBody List getClients()

答案 1 :(得分:2)

我在控制器中使用@ResponseBody找到了解决方案@vacuum评论(谢谢!):

@RequestMapping(method = RequestMethod.GET, value = "/clients")
public @ResponseBody List getClients(
    @RequestParam(value = "estat", required = false) String estat
    throws Exception {

List<Clients> l = s.mdClients(estat);
return l;
}

我还需要使用

更改输出转换方法
<mvc:annotation-driven /> 

在我的servlet-context.xml中,为了使用jackson库进行列表的json转换。

现在输出:

[
  {
   "x": "2",
   "y": "5"
  }
]