2012-03-21 97 views
2

我正在处理一个项目,我需要返回json格式的对象列表。我使用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”,你看到直接进入杰克逊和杰克逊“L”转换成结构,如:

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

问题是根“ClientsList”。我想得到这个没有根输出:

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

所以,任何人都可以帮忙吗?提前致谢!

回答

2

我发现在我的控制器@vacuum评论@ResponseBody使用该解决方案(谢谢!):

@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,以便为我的列表的json转换使用杰克逊库。

的现在输出:

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

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

public @ResponseBody List getClients()