作为JSON对象返回的对象列表

时间:2015-10-21 12:27:58

标签: java json rest jersey

在开发Web服务时,我构建了一个GET方法来返回System对象的JSON列表(自定义对象,而不是java.lang类)。与预期相反,我收到一个JSON对象,其中包含一个参数,其中包含我最初预期的数组。我在这里缺少什么?

系统类

@XmlRootElement
public class System
{
    private long id;
    private String name;

    @XmlElement
    public long getId()
    {
       return id;
    }
    public void setId(long pId)
    {
       id = pId;
    }

    @XmlElement
    public String getName()
    {
       return name;
    }

    public void setName(String pName)
    {
       name = pName;
    }
}

REST服务

@Path("/systems")
public class SystemHandler
{
   @GET
   @Path("/list")
   @Produces({MediaType.APPLICATION_JSON})
   public List<System> getSystems(@Context SecurityContext sc)
   {
      List<System> list = null;
      //Populate the list
      return list;
   }
}

/ systems / list

的结果
{
    "system": [
        {
            "id": "248",
            "name": "FOO"
        },
        {
            "id": "617",
            "name": "BAR"
        }
    ]
}

虽然我在期待

[
    {
        "id": "248",
        "name": "FOO"
    },
    {
        "id": "617",
        "name": "BAR"
    }
]

1 个答案:

答案 0 :(得分:0)

删除@XmlRootElement注释,这告诉Jackson将列表包装在系统属性中并且不是必需的。