顯示序列化空值
當(dāng)對象含有空值
Map<String, String> map = new HashMap<>();
map.put("name", "Lily");
map.put("age", "18");
map.put("grade", null);
默認(rèn)情況下對象轉(zhuǎn)json字符串:
String s = JSONObject.toJSONString(map);
System.out.println(s); // {"name":"Lily","age":"18"}
String gson = new Gson().toJson(map);
System.out.println(gson); // {"name":"Lily","age":"18"}
序列化會過濾掉null值,如果要顯示空值需要對序列化特征進(jìn)行設(shè)置。
String sNew = JSONObject.toJSONString(map, SerializerFeature.WriteMapNullValue);
System.out.println(sNew); // {"grade":null,"name":"Lily","age":"18"}
String gsonNew = new GsonBuilder().serializeNulls().create().toJson(map);
System.out.println(gsonNew); // {"grade":null,"name":"Lily","age":"18"}
替換序列化字段名
有一個對象
package com.sunseaiot.apollo.push.task.dev;
import com.alibaba.fastjson.annotation.JSONField;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
/**
* @author huangbaoling
* @date 2019/5/28 10:58 AM
*/
@Data
public class Student {
@SerializedName("NAME") // Gson替換序列化對象名
private String name;
@JSONField(name = "AGE") // fastjson替換序列化對象名
private String age;
private String grade;
}
測試
Student student = new Student();
student.setName("黃寶玲");
student.setAge("22");
String stu = JSONObject.toJSONString(student);
System.out.println(stu); // {"AGE":"22","name":"黃寶玲"}
String gsonStu = new Gson().toJson(student);
System.out.println(gsonStu); // {"NAME":"黃寶玲","age":"22"}