先上無法實現效果的代碼,我的目的是序列化時如果數字型字段為null則填0,盡可能保證數據整齊。
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
@JSONType(serializeFeatures = {JSONWriter.Feature.WriteNulls,JSONWriter.Feature.WriteMapNullValue,JSONWriter.Feature.WriteNullNumberAsZero,JSONWriter.Feature.PrettyFormat,}
)
public class Student {@JSONField(name = "na") private String name;@JSONField(name = "ch") private Integer chinese;@JSONField(name = "ma") private Integer math;@JSONField(name = "en") private Integer english;
}
我肯定這是版本的BUG
但是結果不行!!!下面的代碼才能達到目的
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class Student {@JSONField(name = "na") private String name;@JSONField(name = "ch") private Integer chinese;@JSONField(name = "ma") private Integer math;@JSONField(name = "en") private Integer english;
}Student student = new Student("jack",null,null,null);
String jsonString = JSON.toJSONString(student, JSONWriter.Feature.WriteNulls, JSONWriter.Feature.WriteMapNullValue,JSONWriter.Feature.WriteNullNumberAsZero,JSONWriter.Feature.PrettyFormat);
還有第二種方法,換fastjson
版本,升級至v2.0.58
,升級后就能用第一段代碼的寫法了