Dav*_*ker 9 java json jackson genson
我有这样的DTO:
public Foo {
public int bar = 123;
public Map<String, Object> params; // key1=v1, key2=v2 etc.
}
Run Code Online (Sandbox Code Playgroud)
我希望它能够序列化到以下JSON:
{
"bar": 123,
"key1": "v1",
"key2": "v2"
}
Run Code Online (Sandbox Code Playgroud)
有没有人知道如何使用杰克逊或简森这样做?基本上我想要在DTO中声明的字段进行自动类型转换,但是任何"额外"都要进入参数映射.
感谢@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; }
}
Run Code Online (Sandbox Code Playgroud)