【发布时间】:2013-07-26 16:34:17
【问题描述】:
杰克逊 v1.9.13 春天 3.2.0 你好, 我花了几天时间试图弄清楚如何在序列化过程中将字段从 bean 添加到 JSON 中。
这似乎是一个非常基本的功能,但我走的每条路线都撞到了橡胶墙。
我想要达到的目标:
示例 bean:
package org.mydomain;
public class MyBean implements Serializable {
private String foo;
public void setFoo( String inValue ) {
foo = inValue;
}
public String getFoo() {
return foo;
}
}
输出:
{
"_type" : "org.mydomain.MyBean",
"foo" : "bar"
}
我认为最简单的方法是扩展 BeanSerializer,写入“_type”属性并委托剩余字段的超类序列化。问题是,方法的可访问性和一些关键方法的“最终”子句使它成为一个泥潭。
我尝试扩展 BeanSerializerBase、JsonSerializer、BeanSerializerModifier。
每次我遇到一些难以理解的 24 参数构造函数或一些未记录/错误记录的方法时。
非常沮丧。
有人对如何实现上述位有任何想法吗?
我使用的是 spring-mvc,因此我需要一个通过 ObjectMapper 配置的可插拔解决方案。我不想用 json 特定的注释或序列化逻辑污染我的模型或控制器对象。
非常感谢。
N.
【问题讨论】:
-
在这个问题stackoverflow.com/questions/14714328/… 中讨论了实现此目的的另一种方法
标签: json serialization jackson custom-fields