一.什么是JSON
json(Javascript Object Notation)是一種輕量級的數(shù)據(jù)交換格式翁巍,相比于xml這種數(shù)據(jù)交換格式來說秦陋,因為解析xml比較的復(fù)雜摔踱,而且需要編寫大段的代碼蔗包,所以客戶端和服務(wù)器的數(shù)據(jù)交換格式往往通過json來進(jìn)行交換句各。尤其是對于web開發(fā)來說链患,json數(shù)據(jù)格式在客戶端直接可以通過javascript來進(jìn)行解析巧鸭。
json一共有兩種數(shù)據(jù)結(jié)構(gòu),一種是以 (key/value)對形式存在的無序的jsonObject對象麻捻,一個對象以“{”(左花括號)開始纲仍,“}”(右花括號)結(jié)束览闰。每個“名稱”后跟一個“:”(冒號);“‘名稱/值’ 對”之間使用“,”(逗號)分隔巷折。
另一種數(shù)據(jù)格式就是有序的value的集合压鉴,這種形式被稱為是jsonArray,數(shù)組是值(value)的有序集合锻拘。一個數(shù)組以“[”(左中括號)開始油吭,“]”(右中括號)結(jié)束。值之間使用“,”(逗號)分隔署拟。
二婉宰、解析json數(shù)據(jù)格式
GSON解析:
GSON是Google提供的用來在Java對象和JSON數(shù)據(jù)之間進(jìn)行映射的Java類庫。使用GSON推穷,可以很容易的將一串JSON數(shù)據(jù)轉(zhuǎn)換為一個Java對象心包,或是將一個Java對象轉(zhuǎn)換為相應(yīng)的JSON數(shù)據(jù)。
1.GSON的兩個重要方法:
在GSON的API中馒铃,提供了兩個重要的方法:toJson()和fromJson()方法蟹腾。其中,toJson()方法用來實現(xiàn)將Java對象轉(zhuǎn)換為相應(yīng)的JSON數(shù)據(jù)区宇,fromJson()方法則用來實現(xiàn)將JSON數(shù)據(jù)轉(zhuǎn)換為相應(yīng)的Java對象娃殖。
1.1 toJson()方法
toJson()方法用于將Java對象轉(zhuǎn)換為相應(yīng)的JSON數(shù)據(jù),主要有以下幾種形式:
(1)String?toJson(JsonElement?jsonElement);
(2)String?toJson(Object?src);
(3)String?toJson(Object?src,?Type?typeOfSrc);
其中议谷,方法(1)用于將JsonElement對象(可以是JsonObject炉爆、JsonArray等)轉(zhuǎn)換成JSON數(shù)據(jù);方法(2)用于將指定的Object對象序列化成相應(yīng)的JSON數(shù)據(jù)卧晓;方法(3)用于將指定的Object對象(可以包括泛型類型)序列化成相應(yīng)的JSON數(shù)據(jù)芬首。
1.2 fromJson()方法
fromJson()方法用于將JSON數(shù)據(jù)轉(zhuǎn)換為相應(yīng)的Java對象,主要有以下幾種形式:
(1)?T?fromJson(JsonElement?json,?Class?classOfT);
(2)?T?fromJson(JsonElement?json,?Type?typeOfT);
(3)?T?fromJson(JsonReader?reader,?Type?typeOfT);
(4)?T?fromJson(Reader?reader,?Class?classOfT);
(5)?T?fromJson(Reader?reader,?Type?typeOfT);
(6)?T?fromJson(String?json,?Class?classOfT);
(7)?T?fromJson(String?json,?Type?typeOfT);
以上的方法用于將不同形式的JSON數(shù)據(jù)解析成Java對象逼裆。