目前我正在设计一个 RESTful API 并使用 JAX-RS 作为后端。许多响应具有以下简单形式:
{
"someList": [
"item1" : ...,
"item2" : ...,
"itemn" : ...
]
}
重要的是数组的字段名称。客户端需要它(EmberJS 数据)。我尝试使用标准 ResponseBuilder 创建响应,但我不知道如何定义列表的字段名称。我得到的所有回复都是这样的:
[
"item1" : ...,
"item2" : ...,
"itemn" : ...
]
过去,我总是创建一个容器类,其中包含一个列表属性。这可行,但我认为必须有更好的解决方案。也许是一个封装其他对象的辅助类?
这取决于您使用的 JSON 序列化器。Jettison http://jettison.codehaus.org/默认情况下将响应包装在根元素中(我认为 EnvelopeObject 不是一个正确的词)。
如果您正在使用Jackson https://github.com/FasterXML/jackson您可以配置此行为SerializationFeature.WRAP_ROOT_VALUE http://fasterxml.github.io/jackson-databind/javadoc/2.1.0/com/fasterxml/jackson/databind/SerializationFeature.html#WRAP_ROOT_VALUE(或反序列化功能)。
键的名称可以通过以下方式指定@JsonRootName http://fasterxml.github.io/jackson-annotations/javadoc/2.1.0/com/fasterxml/jackson/annotation/JsonRootName.html如果您正在使用 Jackson-Annotations 或@XmlRootElement http://docs.oracle.com/javaee/7/api/javax/xml/bind/annotation/XmlRootElement.html如果您使用 JAXB 注释。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)