-
json: key必須為string類型,value可以是基本類型或數(shù)據(jù)結(jié)果
支持的value類型:
object 對(duì)象:{}
array 數(shù)組:[] 數(shù)組內(nèi)用逗號(hào)隔開
基本類型:String,number(數(shù)值,包括整數(shù),浮點(diǎn)數(shù)),布爾類型(true,false),null
查看全部 -
JavaScript object Notation查看全部
-
引入依賴 com.google code.gson gson 2.4查看全部
-
@SerializedName("a")將注解的key值變?yōu)閍查看全部
-
跟進(jìn)社區(qū)產(chǎn)品,有新功能簡(jiǎn)化工作 Set<> List<>查看全部
-
集合類解析——
GSON另外一個(gè)常用操作:進(jìn)行轉(zhuǎn)換和解析過程中,能夠?qū)SON中的數(shù)組和java中的集合類進(jìn)行對(duì)接。
案例:這里把實(shí)體類中數(shù)組類型的major換為集合類型List。
查看全部 -
GSON解析帶日期轉(zhuǎn)換
JSON不支持日期格式數(shù)據(jù),所以只能使用String類型的日期。但是java中有Date數(shù)據(jù)類型的數(shù)據(jù),GSON是支持日期類型數(shù)據(jù)的(此處的支持是指將日期轉(zhuǎn)換成Date的格式)。
步驟1:創(chuàng)建Gson對(duì)象時(shí),通過new GsonBuilder()的setDateFormat(“yyyy-MM-dd”).create(),通過該模板GSON會(huì)把符合該模式的字符串日期自動(dòng)轉(zhuǎn)換成Date的類型
查看全部 -
GSON解析JSON格式的數(shù)據(jù)
案例:這里將JSON格式數(shù)據(jù)解析為JavaBean對(duì)象,這里使用fromJson(String json,Class type),這樣就可以把JSON的數(shù)據(jù)賦值給JavaBean的屬性,如果key值對(duì)應(yīng)不上屬性名就置為null。
查看全部 -
生成JSON數(shù)據(jù)——
GSON:可以輸出JSON樣式數(shù)據(jù),可以使用GsonBuilder在構(gòu)建JSON數(shù)據(jù)過程中,使用setPrettyPrinting()方法,然后就不使用new Gson對(duì)象而是通過gsonBuilder.create()來(lái)創(chuàng)建Gson對(duì)象。
GSON:可以使用GsonBuilder對(duì)象在解析時(shí),使用setFieldNamingStrategy(回調(diào)函數(shù))進(jìn)行一些操作,例如:把Key變成大寫,如果為其他還是默認(rèn)值。
GSON:JavaBean的有些屬性不想暴露在JSON數(shù)據(jù)中,通過JSON的默認(rèn)生成方式會(huì)將所有屬性生成key和value進(jìn)行輸出,而GSON通過聲明一個(gè)類型為transient類型的屬性,這樣在JSON數(shù)據(jù)生成過程中就會(huì)忽略掉該屬性。
查看全部 -
GSON生成JSON數(shù)據(jù)
步驟1:添加依賴
步驟2:使用JavaBean創(chuàng)建GSON數(shù)據(jù),通過GSON的toJson(Bean對(duì)象)就可以轉(zhuǎn)換為GSON數(shù)據(jù)。
GSON:可以使用@SerializedName(“NAME”)改變GSON的key值。
查看全部 -
本章介紹使用Google的GSON包來(lái)生成和解析JSON格式數(shù)據(jù)。除此以外,還包括GSON解析帶日期的數(shù)據(jù),以及集合類解析。
GSON簡(jiǎn)介——
GSON:開源的第三方工具,可以用來(lái)解析JSON數(shù)據(jù),相比JSON,功能更全面,性能更出色,使用方式更加便捷。
查看全部 -
JSON總結(jié)
JavaBean方式適用于生成JSON數(shù)據(jù)和但是不適用于解析JSON數(shù)據(jù),因?yàn)镴SONObject的第三庫(kù)不支持解析JSON數(shù)據(jù)。
JSON總結(jié):
生成JSON數(shù)據(jù)——(有缺陷的,日期類型需要定義成String類型)
【1】通過JSONObject的put方法這種原生的方式
【2】通過Map的put方法方式,再把該對(duì)象傳入JSONObject構(gòu)造方法中
【3】通過JavaBean的set方法方式,再把JavaBean對(duì)象傳入JSONObject構(gòu)造方法
解析JSONObject——(缺陷,不能反解析成JavaBean)
【1】讀取文件位置
【2】FileUtils類的readFileToString把JSON數(shù)據(jù)轉(zhuǎn)換成String類型
【3】再把該String對(duì)象傳入JSONObject構(gòu)造函數(shù)中
查看全部 -
從文件讀取JSON判斷null(增加程序健壯性)
實(shí)際開發(fā)中讀取JSON數(shù)據(jù)是在WEB環(huán)境下(網(wǎng)絡(luò)上提供的API或者文件中)
如果在讀取時(shí),JSON數(shù)據(jù)中沒有指定key,一般需要打印一個(gè)日志或者拋出一個(gè)異常,這里可以使用JSONObject對(duì)象的isNull("key")方法,判斷如果沒有key值做一些操作。
查看全部 -
解析JSON數(shù)據(jù)
輔助:一般解析JSON數(shù)據(jù)時(shí),需要獲取JSON數(shù)據(jù)的途徑,這個(gè)途徑可能是文件讀取或遠(yuǎn)程API網(wǎng)絡(luò)上獲取JSON數(shù)據(jù),這里講解從文件途徑中進(jìn)行文件讀取,并轉(zhuǎn)換成一個(gè)我們想要的對(duì)象,在pom文件中引入common-io的依賴,該包方便讀取文件的內(nèi)容。
案例:從一個(gè)文件中讀取JSON數(shù)據(jù),并轉(zhuǎn)換為對(duì)象。
步驟1:項(xiàng)目中創(chuàng)建王小二的JSON格式數(shù)據(jù)。
步驟2:讀取該文件,首先聲明JSON文件的File,并指明該文件的路徑(項(xiàng)目的根路徑下)
步驟3:通過FileUtils類的readFileToString讀入JSON文件,再通過JSONObject構(gòu)造函數(shù)傳入讀入的JSON文件。
JSONObject提供了一些獲取指定key值的方法:
【1】getString("key")獲取value類型為String的值
【2】getDouble("key")獲取value類型為number的值
【3】getBoolean("key")獲取value類型為boolean的值
【4】getJSONArray("key")獲取value類型為數(shù)組的值,它的返回值是JSONArray,它是一個(gè)數(shù)組。
查看全部 -
toLocaleString()過時(shí)了,替代的有:DateFormat?ddf?=?DateFormat.getDateInstance();??
DateFormat?dtf?=?DateFormat.getTimeInstance();??
DateFormat?ddtf?=?DateFormat.getDateTimeInstance();??
Date?date?=?new?Date();??
System.out.println("日期:"?+?ddf.format(date));??
System.out.println("時(shí)間:"?+?dtf.format(date));??
System.out.println("日期時(shí)間:"?+?ddtf.format(date));??
SimpleDateFormat?sdf?=?(SimpleDateFormat)?DateFormat.getDateTimeInstance();??
System.out.println("日期時(shí)間:"?+?sdf.format(date));??
查看全部
舉報(bào)