Jackson序列化Tuple结构时的字段合并异常问题求助
问题:Jackson序列化手动创建的Activity对象时结构不符预期
原始JSON结构
"activityContainer" : { "activities": [ [ { "value": "483ab684-9854-4350-a5d0-a21b7d619c05" }, { "type": "Activity", "uuid": "483ab684-9854-4350-a5d0-a21b7d619c05", } ] ] }
自动生成的实体类
生成的ActivityContainer类:
@JsonInclude(JsonInclude.Include.NON_NULL) @JsonPropertyOrder({ "activities" }) @Generated("jsonschema2pojo") public class ActivityContainer{ @JsonProperty("activities") private List<List<Activity>> activities = new ArrayList<List<Activity>>(); @JsonIgnore private Map<String, Object> additionalProperties = new HashMap<String, Object>(); // getters and setters }
对应的Activity类:
@JsonInclude(JsonInclude.Include.NON_NULL) @JsonPropertyOrder({ "value", "type", "uuid" }) @Generated("jsonschema2pojo") public class Activity { @JsonProperty("value") private String value; @JsonProperty("type") private String type; @JsonProperty("uuid") private String uuid; @JsonIgnore private Map<String, Object> additionalProperties = new HashMap<String, Object>(); // getters and setters }
问题现象
- 将原始JSON字符串反序列化为
ActivityContainer对象后再序列化,输出结果与原始JSON一致,符合预期。 - 手动创建
Activity对象并填充所有字段,添加到ActivityContainer的列表中后,序列化输出结果如下:
"activityContainer" : { "activities": [ [ { "value": "483ab684-9854-4350-a5d0-a21b7d619c05", "type": "Activity", "uuid": "483ab684-9854-4350-a5d0-a21b7d619c05", } ] ] }
原本拆分在两个对象中的字段被合并到了同一个对象里,与原始结构不符。
疑问
已知无法修改原始JSON结构,请问导致这一现象的原因是什么?
内容的提问来源于stack exchange,提问作者Lorenzo Frangioni
相关产品推荐
相关产品推荐

