带@的JSON令牌名称

时间:2013-06-06 09:46:55

标签: java json jersey jackson

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

e.g。

xsd定义:

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

这在java类中生成为:

private Long uid;

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

"@uid":  1

我已阅读杰克逊的文档,但无法找到任何能说明原因的原因。有没有办法让JSON序列化为uid而不是@uid?我想我也需要理解@的含义是什么,因为有些属性有@和有些属性。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

这个信息不足以确定。首先,您必须显示您正在使用的实际Java对象(PO​​JO) - Jackson不会将XML Schema用于任何事情。这都是关于getter,setter和annotations的。

但也有可能你甚至不使用杰克逊,因为这是基于XML的工具的典型行为,如JettisonXStream;他们倾向于添加符号以区分“元素与属性”(这是这些工具想要保留的特定于XML的区别)。