java - Jackson 自动映射名为 @foo 的属性?

标签 java json jackson

使用 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/

相关文章:

java - 在 persistence.xml 中引用 Tomcat JNDI 数据源

json - jackson self 引用导致循环

java - 在继承类中使用 Jackson 注释

java - 从查询中分离列表

Java双端队列toString方法覆盖左侧元素

java - 单元测试 Jersey Restful Services

java - 在没有默认构造函数的内部类时使用 Jackson 解码 JSON

java - 使用 Jackson 序列化 XML 时如何指定列表元素名称?

java - 使用 JPA 的 @Transient 在 OData 元数据中不可见

javascript - 将 javascript 日期转换为 json 日期格式