使用REST时,我的提供程序正在生成JSON,其属性名称以at符号开头,当属性标记为@XmlAttibute时,如下所示:
@XmlAttribute
int foo = 1;
将返回
{"@foo":1}
如果我在客户端
,我怎么能告诉杰克逊反序列化呢?int foo;
它应该采用json-Attribute @foo。或者用更一般的术语:如何告诉杰克逊在反序列化时忽略@?
更新:我知道StaxMan所指的@JsonProperty(“@ foo”)注释 - 我忘了把它放在我原来的问题中,因为我对“全局设置”特别感兴趣而不是每个属性级别
答案 0 :(得分:4)
Easiesti可能是禁用在那里添加'@'标志,因为它们似乎没用。我知道一些XML-to-JSON库(Jettison)希望使用它来区分XML属性和元素,但它对实际的JSON处理几乎没用。
但杰克逊可以使用@JsonProperty注释在JSON中获得预期的属性名称:
@JsonProperty("@foo")
public int foo; // or add in setter
如果有必要将那些标志留在那里。
答案 1 :(得分:0)
我认为你想要@XmlElement
而不是@XmlAttribute
。后者的值总是在开头给出@。