Gson & FastJson 序列化

顯示序列化空值

當(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"}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 概要 64學(xué)時 3.5學(xué)分 章節(jié)安排 電子商務(wù)網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,793評論 0 3
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,695評論 0 5
  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當(dāng)在唯一索引所對應(yīng)的列上鍵入重復(fù)值時,會觸發(fā)此異常。 O...
    我想起個好名字閱讀 5,927評論 0 9
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,621評論 1 32
  • 一.什么是對象序列化? 對象序列化是指將對象的狀態(tài)轉(zhuǎn)換為字符串(來自我這菜鳥的理解,好像有些書上也是這么說的,淺顯...
    兜兜里冒糖糖閱讀 469評論 0 0

友情鏈接更多精彩內(nèi)容