我正在使用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?我想我也需要理解@的含义是什么,因为有些属性有@和有些属性。
感谢您的帮助。
答案 0 :(得分:0)
这个信息不足以确定。首先,您必须显示您正在使用的实际Java对象(POJO) - Jackson不会将XML Schema用于任何事情。这都是关于getter,setter和annotations的。
但也有可能你甚至不使用杰克逊,因为这是基于XML的工具的典型行为,如Jettison
和XStream
;他们倾向于添加符号以区分“元素与属性”(这是这些工具想要保留的特定于XML的区别)。