使用和@XmlType(propOrder)和Resteasy jackson的参数顺序

时间:2011-08-17 20:26:32

标签: java jackson resteasy xmltype

我使用resteasy生成json。 一切正常,但......我无法订购生成的json的参数:

在我的序列化课程中,我有以下内容:

@XmlRootElement
@XmlType(propOrder={"foo1", "foo2", "foo3"})

在我生成的json中,我得到:

{"foo2":"bar2","foo1":"bar1","foo3":""}

我的pom.xml中有以下依赖项

    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jackson-provider</artifactId>
        <version>2.2.0.GA</version>
    </dependency>

任何想法?

2 个答案:

答案 0 :(得分:2)

一个简单的答案是“它没关系” - JSON对象中的属性排序没有意义,因此库和框架可以按照他们想要的顺序自由输出它们。

但更复杂的答案可能是尝试使用杰克逊自己的 @JsonPropertyOrder 注释,这应该有效。除非您绝对必须使用JAXB注释,否则可能会解决您的问题。

即便如此,当启用JAXB注释模式时,Jackson应支持此JAXB注释。因此,如果您需要使用JAXB注释,则需要尝试找出未启用支持的原因。它可能会或可能不会启用RESTeasy,因为默认情况下Jackson本身不会使用它们(即框架必须明确启用它)。

答案 1 :(得分:0)

这与Jackson 2.3.2有关。升级,你的问题就消失了。

相关问题