我有一堆与Jackson一起序列化的Java对象。所有序列化类型看起来都像这样:
class MySampleClass {
@JsonProperty("propName1")
private MyCustomType propName1;
@JsonProperty("propName2")
private MyOtherCustomType propName2;
@JsonCreator
public MySampleClass(@JsonProperty("propName1") MyCustomType propName1, @JsonProperty("propName2") MyOtherCustomType propName2) {
this.propName1 = propName1;
this.propName2 = propName2;
}
}
是否有任何情况下将此类的实例转换为Map<String, Object>
然后将地图转换为JSON将无法解压缩回原始Java对象?
答案 0 :(得分:3)
除非你收到这些对象的数组,否则它会这样做。如果是这种情况,那么您可以使用MySampleClass[]
。
JSON在RFC 7159中定义。从这里:
对象是零个或多个名称/值的无序集合 对,,其中名称是字符串,值是字符串,数字,
boolean,null,object或array。
(强调我的)
因此,JSON对象必须将字符串作为键,并且值可以是少数Object类型之一。