先上无法实现效果的代码,我的目的是序列化时如果数字型字段为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
,升级后就能用第一段代码的写法了