[可以使用jackson json工具类public class ObjectMappingTest {
public ObjectMapper test() {
StdSerializerProvider sp = new StdSerializerProvider();
sp.setNullValueSerializer(new JsonSerializer(){
@Override
public void serialize(Object arg0, JsonGenerator arg1,
SerializerProvider arg2) throws IOException,
JsonProcessingException {
arg1.writeString("");//null 序列化为 ""
}});
ObjectMapper m = new ObjectMapper();
m.setSerializerProvider(sp);
return m;
}
public static void main(String[] args) {
ObjectMappingTest ob = new ObjectMappingTest();
ObjectMapper o = ob.test();
Map map = new HashMap();
map.put("111", "ddd");
map.put("222", null);
map.put("333", null);
Person p = new Person(null,23l);
try {
System.out.println(o.writeValueAsString(map));//null ===>> ""
System.out.println(o.writeValueAsString(p));//去除属性为null的信息
} catch (JsonGenerationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JsonMappingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)//这个注释是用来去除值为null的元素
public class Person {
public Person(String name, Long age) {
super();
this.name = name;
this.age = age;
}
private java.lang.String name;
private java.lang.Long age;
public java.lang.String getName() {
return name;
}
public void setName(java.lang.String name) {
this.name = name;
}
public java.lang.Long getAge() {
return age;
}
public void setAge(java.lang.Long age) {
this.age = age;
}
}
main方法输出结果:
{"222":"","111":"ddd","333":""}
{"age":23}
person类不加注释结果为:
{"name":"","age":23}
2014年3月17日 18:22
30
0
0
2