Java Jackson-更紧凑地将泛型集合序列化为json
我想用Jackson以紧凑的方式序列化泛型集合,这样在输出中我将得到类似的jsonJava Jackson-更紧凑地将泛型集合序列化为json,java,json,jackson,Java,Json,Jackson,我想用Jackson以紧凑的方式序列化泛型集合,这样在输出中我将得到类似的json public class ContainList<SomePojo> { @JsonTypeInfo(use=Id.NAME, include=As.WRAPPER_OBJECT, property="type") @JsonSubTypes({ @JsonSubTypes.Type(value=SimplePojo1.class, name="simplePoj
public class ContainList<SomePojo> {
@JsonTypeInfo(use=Id.NAME, include=As.WRAPPER_OBJECT, property="type")
@JsonSubTypes({
@JsonSubTypes.Type(value=SimplePojo1.class, name="simplePojo11")
,@JsonSubTypes.Type(value=SimplePojo2.class, name="simplePojo22")
})
public List<SomePojo> list;
}
{genericType:[{field1:1},{field1:25}]}
例子:
我有一个看起来像
public class ContainList<SomePojo> {
@JsonTypeInfo(use=Id.NAME, include=As.WRAPPER_OBJECT, property="type")
@JsonSubTypes({
@JsonSubTypes.Type(value=SimplePojo1.class, name="simplePojo11")
,@JsonSubTypes.Type(value=SimplePojo2.class, name="simplePojo22")
})
public List<SomePojo> list;
}
我的目标是得到
{
"list": [
{
"simplePojo11": {
"simplePojo11Field": "privet"
}
},
{
"simplePojo11": {
"simplePojo11Field": "poka"
}
}
]
}
{
"list":
{ simplePojo11 : [ {"simplePojo11Field": "privet"}, {"simplePojo11Field": "poka"} ] }
}
或者根本没有名单
{ simplePojo11111 : [ {"simplePojo111111Field": "privet"}, {"simplePojo111111Field": "poka"} ] }
但是
列表
是一个列表
,不是吗?那么,为什么要将其映射到一个对象?映射到什么目的?如果您想使其更小,请将其输出到压缩流中——或者。它将比您在问题中提出的任何微观优化都要小。在我看来,json中的列表更像是{elements:[{..},{..},{..},{..}]}而不是{list:[{element:{..},{element:{..},{..},{element:{..}]}的本地表示。在我看来,json中的列表更像是{elements:[{..},{..},{..}]}而不是“{list:[{element:{..}},{element:{..}},{element:{..}}]}”