创建一个学生对象
public class Student {
private String name
;
private int age
;
private String gender
;
public Student() {
}
public Student(String name
, int age
, String gender
) {
this.name
= name
;
this.age
= age
;
this.gender
= gender
;
}
public String
getName() {
return name
;
}
public void setName(String name
) {
this.name
= name
;
}
public int getAge() {
return age
;
}
public void setAge(int age
) {
this.age
= age
;
}
public String
getGender() {
return gender
;
}
public void setGender(String gender
) {
this.gender
= gender
;
}
}
创建一个测试类
public class Test01 {
public static void main(String
[] args
) {
Student student
= new Student("张三", 20, null
);
String jsonString
= JSON
.toJSONString(student
);
System
.out
.println(jsonString
);
String jsonString2
= JSON
.toJSONString(student
, (ValueFilter
)(object
, ame
, value
) -> {
if(value
== null
){
return "";
}
return value
;
});
System
.out
.println(jsonString2
);
}
}
输出结果
{"age":20,"name":"张三"}
{"age":20,"gender":"","name":"张三"}
讲解
调用JSON.toJSONString(Object object, SerializeFilter filter, SerializerFeature… features)方法,自定义SerializeFilter
public static String
toJSONString(Object object
, SerializeFilter filter
, SerializerFeature
... features
) {
return toJSONString(object
, SerializeConfig
.globalInstance
, new SerializeFilter[] {filter
}, null
, DEFAULT_GENERATE_FEATURE
, features
);
}
public interface SerializeFilter {
}
我们选用SerializeFilter 的子类ValueFilter
public interface ValueFilter extends SerializeFilter {
Object
process(Object object
, String name
, Object value
);
}
重写process(Object object, String name, Object value);方法,当value为null时返回""
JSON
.toJSONString(student
, (ValueFilter
)(object
, ame
, value
) -> {
if(value
== null
){
return "";
}
return value
;
});