2

我正在使用 Jackson 将 JAXB 生成的类序列化为 Jersey 中的 JSON。虽然生成的 JSON 可以正常工作,但某些令牌名称前面有一个 @。

例如

xsd 定义:

<xs:element name="uid" type="xs:long"/>

这在java类中生成为:

private Long uid;

与相关的 getter 和 setter。使用标准 Jackson ObjectMapper(带有默认配置),序列化的 JSON 是:

"@uid":  1

我已通读 Jackson 文档,但找不到任何说明为什么会出现这种情况的信息。有没有办法让 JSON 序列化为 uid 而不是@uid?我想我还需要了解 @ 的含义是什么,因为有些属性有 @ 而有些没有。

谢谢你的帮助。

4

1 回答 1

0

这不是足够的信息来确定。首先,您必须展示您正在使用的实际 Java 对象 (POJO)——Jackson 不使用 XML Schema 做任何事情。这都是关于 getter、setter 和注释的。

但也有可能您甚至没有使用 Jackson,因为这是基于 XML 的工具的典型行为,例如Jettisonand XStream; 他们倾向于添加 at 符号来区分“元素与属性”(这是这些工具想要保留的特定于 XML 的差异)。

于 2013-06-10T22:45:04.167 回答