使用 REST 时,当属性被标记为 @XmlAttibute 时,我的提供程序会生成属性名称以 at 符号开头的 JSON,如下所示:
@XmlAttribute
int foo = 1;
将返回
{"@foo":1}
如果我在客户端上有的话,我如何告诉 jackson 反序列化
int foo;
它应该采用 json-Attribute @foo 来实现这一点。或者更一般地说:如何告诉 jackson 在反序列化时忽略@?
更新:我知道 StaxMan 所指的 @JsonProperty("@foo") 注释 - 我忘记将其放在我原来的问题中,因为我对“全局设置”特别感兴趣,而不是在每个属性级别.
最佳答案
最简单的事情可能是禁用在那里添加那些“@”符号,因为它们看起来毫无用处。我知道一些 XML 到 JSON 库(Jettison)想要使用它来区分 XML 属性和元素,但它对于实际的 JSON 处理几乎没有什么用处。
但是可以使用 @JsonProperty 注释为 Jackson 提供 JSON 中预期的属性名称:
@JsonProperty("@foo")
public int foo; // or add in setter
是否有必要将标志保留在那里。
关于java - Jackson 自动映射名为 @foo 的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7006220/