gson(Gson 的入門使用)

時間:2024-10-13 18:00:30 閱讀:10

Gson 的入門使用

Java目標和Json之間的互轉(zhuǎn),尋常用的比力多的兩個類庫是Jackson和Gson,底下紀錄一下Gson的學(xué)習(xí)使用。

基本看法:

Serialization:序列化,使Java目標到Json字符串的歷程。

Deserialization:反序列化,字符串轉(zhuǎn)換成Java目標

Gson的兩個基本辦法

toJson();

fromJson();

Gson的創(chuàng)建辦法一:直接new Gson目標

// 使用new辦法

Gson gson = new Gson();

// toJson 將bean目標轉(zhuǎn)換為json字符串

String jsonStr = gson.toJson(user, User.class);

// fromJson 將json字符串轉(zhuǎn)為bean目標

Student user= gson.fromJson(jsonStr, User.class);

// **序列化List**

String jsonStr2 = gson.toJson(list);

// **反序列化成List時必要使用到TypeToken getType()**

List<User> retList = gson.fromJson(jsonStr2,new TypeToken<List<User>>(){}.getType());

Gson的創(chuàng)建辦法二:使用GsonBuilder

使用new Gson(),此時會創(chuàng)建一個帶有默許設(shè)置選項的Gson實例,假如不想使用默許設(shè)置,那么就可以使用GsonBuilder。

//serializeNulls()是GsonBuilder提供的一種設(shè)置,當字段值為空或null時,仍然對該字段舉行轉(zhuǎn)換

Gson gson = new GsonBuilder().serializeNulls().create();

使用GsonBuilder創(chuàng)建Gson實例的步調(diào)

起首創(chuàng)建GsonBuilder,然后調(diào)用GsonBuilder提供的種種設(shè)置辦法舉行設(shè)置,

最初調(diào)用GsonBuilder的create辦法,將基于如今的設(shè)置創(chuàng)建一個Gson實例。

GsonBuilder的一些設(shè)置

Gson gson = new GsonBuilder()


.excludeFieldsWithoutExposeAnnotation() //不合錯誤沒有效@Expose注解的屬性舉行利用


.enableComplexMapKeySerialization() //當Map的key為繁復(fù)目標時,必要開啟該辦法

.serializeNulls() //當字段值為空或null時,仍然對該字段舉行轉(zhuǎn)換

.setDateFormat("yyyy-MM-dd HH:mm:ss:SSS") //時間轉(zhuǎn)化為特定格式

.setPrettyPrinting() //對后果舉行格式化,增長換行

.disableHtmlEscaping() //避免特別字符顯現(xiàn)亂碼

.registerTypeAdapter(User.class,new UserAdapter()) //為某特定目標設(shè)置安穩(wěn)的序列或反序列辦法,自界說Adapter需完成JsonSerializer大概JsonDeserializer接口

.create();

Gosn對繁復(fù)Map的處理時必要用到此中的
enableComplexMapKeySerialization() 設(shè)置:

Gson gson = new GsonBuilder()
.enableComplexMapKeySerialization().create(); //開啟繁復(fù)處理Map辦法

Map<List<User>, String> map = new HashMap<List<User>, String>();

// TODO 向map中添加數(shù)據(jù)

String jsonStr = gson.toJson(map); //toJson

Map<List<User>, String> resultMap = gson.fromJson(jsonStr,new TypeToken<Map<List<User>, String>>() {}.getType()); //fromJson

注意:假如Map的key為String,則可以不使用GsonBuilder的
enableComplexMapKeySerialization()辦法,大概直接new Gson();

版權(quán)聲明:本文來自互聯(lián)網(wǎng)整理發(fā)布,如有侵權(quán),聯(lián)系刪除

原文鏈接:http://m.avtt22014.comhttp://m.avtt22014.com/shenghuojineng/53245.html


Copyright ? 2021-2022 All Rights Reserved 備案編號:閩ICP備2023009674號 網(wǎng)站地圖 聯(lián)系:dhh0407@outlook.com

主站蜘蛛池模板: 精品久久久久香蕉网| 丰满少妇三级全黄| 野花香社区在线视频观看播放| 日韩A无V码在线播放| 国产一区二区三区手机在线观看| 久99re视频9在线观看| 精品综合久久久久久99| 夜先锋av资源网站| 亚洲va中文字幕无码久久| 韩国福利影视一区二区三区| 成人毛片免费观看视频在线| 交换年轻夫妇5| 2022福利视频| 无遮挡又黄又爽又色的动态图1000| 八区精品色欲人妻综合网| 91亚洲国产成人精品下载| 日韩精品一区二区三区老鸦窝 | 天天综合天天综合| 日本a级作爱片金瓶双艳| 免费精品99久久国产综合精品| 7x7x7x免费在线观看| 日本高清视频免费观看| 北条麻妃一区二区三区av高清| 久久精品国产99国产| 精品国产成a人在线观看| 国产精品自在欧美一区| 久久久精品国产免大香伊| 男人的天堂黄色| 国产无套粉嫩白浆在线观看| 东京加勒比中文字幕波多野结衣| 欧美粗大猛烈老熟妇| 国产偷久久久精品专区| japanesexxxx乱子老少配另类| 欧洲一级毛片免费| 和搜子居的日子2中文版| 6580岁老太婆| 无忧传媒视频免费观看入口| 伊人色综合一区二区三区| 国产午夜激无码av毛片| 天堂а√在线地址| 日本理论片2828理论片|