一尘不染

使用Jackson和Spring-MVC将对象列表序列化为Json

spring-mvc

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

我想要一个直接包含对象而不是’name:objects array’的json结构。

这是我的简化代码:

@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;
}

您看到的“ return l”直接传递给Jackson,杰克逊将“ l”转换为类似以下的结构:

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

问题是根目录“ ClientsList”。我想要无根输出:

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

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


阅读 330

收藏
2020-06-01

共1个答案

一尘不染

我已经在@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中,以便将jackson库用于列表的json转换。

现在的输出:

[
  {
   "x": "2",
   "y": "5"
  }
]
2020-06-01