我有这样的DTO:
public Foo {
public int bar = 123;
public Map<String, Object> params; // key1=v1, key2=v2 etc.
}
我希望它能够序列化到以下JSON:
{
"bar": 123,
"key1": "v1",
"key2": "v2"
}
有人知道如何使用杰克逊或简森这样做吗?基本上我想要在DTO中声明的字段进行自动类型转换,但任何“额外”都要进入参数图。
答案 0 :(得分:5)
感谢@fge让我走上正轨。杰克逊有@JsonAnySetter和@JsonAnyGetter注释可以用来做到这一点:
public Foo {
public int bar;
private transient Map<String, Object> params = new HashMap<String, Object>();
@JsonAnySetter
public void set(String k, Object v) { params.put(k, v); }
@JsonAnyGetter
public Map getParams() { return params; }
}