JAX-RS:对于Web服务中的根元素、列表的一部分、param,是否有json的序列化程序



目前我正在设计一个RESTful API,并使用JAX-RS作为后端。许多回复具有以下简单形式:

{
  "someList": [
    "item1" : ...,
    "item2" : ...,
    "itemn" : ...
  ]
}

重要的是数组的字段名。它是客户端所必需的(EmberJS数据)。我试图用标准的ResponseBuilder创建响应,但我不知道如何定义列表的字段名。我得到的所有回复看起来像:

[
  "item1" : ...,
  "item2" : ...,
  "itemn" : ...
]

在过去,我总是为列表创建一个具有一个属性的容器类。这是可行的,但我认为必须有一个更好的解决方案。也许是一个辅助类来封装其他对象?

这取决于您正在使用的JSON序列化程序。Jettison默认情况下将响应封装在根元素中(我认为EnvelopeObject不是一个正确的词)。

如果使用Jackson,则可以使用SerializationFeature.WRAP_ROOT_VALUE(或反序列化功能)配置此行为。

如果使用Jackson Annotations,则可以使用@JsonRootName指定密钥的名称;如果使用JAXB Annotation,则可以用@XmlRootElement指定密钥名称。

最新更新