小編這次要給大家分享的是如何使用java JSON解析庫Alibaba Fastjson,文章內(nèi)容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、成都微信小程序、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了藍(lán)田免費建站歡迎大家使用!
Json是一種輕量級的數(shù)據(jù)交換格式,應(yīng)該在一個程序員的開發(fā)生涯中是常接觸的。簡潔和清晰的層次結(jié)構(gòu)使得 JSON 成為理想的數(shù)據(jù)交換語言。 易于人閱讀和編寫,同時也易于機器解析和生成,并有效地提升網(wǎng)絡(luò)傳輸效率。
現(xiàn)在主流的對象與 JSON 互轉(zhuǎn)的工具很多,這里介紹的是阿里巴巴的開源庫 - Fastjson。Fastjson是一個Java庫,可用于將Java對象轉(zhuǎn)換為其JSON表示。它還可用于將JSON字符串轉(zhuǎn)換為等效的Java對象。Fastjson可以處理任意Java對象,包括您沒有源代碼的預(yù)先存在的對象。
驗證json數(shù)據(jù)格式網(wǎng)址:http://tools.jb51.net/code/json
Fastjson 的優(yōu)點
Fastjson依賴
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency>
FastJson下載地址:https://github.com/alibaba/fastjson
json格式
json數(shù)組格式:
對象數(shù)組格式:
[ {alt: '[壞笑]', src:'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/50/pcmoren_huaixiao_org.png'}, {alt: '[舔屏]', src:'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/40/pcmoren_tian_org.png'}, {alt: '[污]', src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/3c/pcmoren_wu_org.png'} ]
json對象格式:
{ "ID": 1001, "name": "張三", "age": 24 }
因為之前在開發(fā)中遇到過這種json轉(zhuǎn)換,當(dāng)時用的是jackson,就覺得很麻煩,最近在寫一個小項目時接觸到Fastjson時,就覺得這個非常好用。
一般實際開發(fā)過程中,都是從前臺拼接后傳遞過來的json字符串,下面測試就直接用的java字符串定義的json格式字符串(視情況而定)。
轉(zhuǎn)換一定需要先添加依賴或者jar包才能使用。
把字符串json數(shù)組轉(zhuǎn)為json格式數(shù)組取值:
String str = "[\"張三\",\"18\",\"宜昌\"]"; JSONArray array = JSONArray.parseArray(str); System.out.println(array.get(0)); System.out.println(array.get(1)); System.out.println(array.get(2)); System.out.println();
輸出結(jié)果
字符串json對象數(shù)組轉(zhuǎn)為json格式或者list對象
返回list集合對象時后面需要加上返回對象類
List<User> array2 = JSONArray.parseArray(str1, User.class);
String str1 = "[" + " {\"name\": \"張三\", \"age\": 24, \"city\": \"宜昌\"}," + " {\"name\": \"李四\", \"age\": 25, \"city\": \"宜昌\"}," + " {\"name\": \"王五\", \"age\": 22, \"city\": \"宜昌\"}" + "]"; JSONArray array1 = JSONArray.parseArray(str1); System.out.println(array1.get(0).toString()); System.out.println(array1.get(1).toString()); System.out.println(array1.get(2).toString()); System.out.println(); List<User> array2 = JSONArray.parseArray(str1, User.class); for(int i = 0; i < array2.size(); i++) { System.out.println("姓名:"+array2.get(i).getName()+", 年齡:"+array2.get(i).getAge()+", 地址:"+array2.get(i).getCity()); }
輸出結(jié)果
字符串json對象格式轉(zhuǎn)為實體對象
String str2 = "{\"name\": \"張三\", \"age\": 24, \"city\": \"宜昌\"}"; User user = JSONArray.parseObject(str2, User.class); System.out.println("姓名:"+user.getName()+", 年齡:"+user.getAge()+", 地址:"+user.getCity());
輸出結(jié)果:
json字符串轉(zhuǎn)為json格式
String str2 = "{\"name\": \"張三\", \"age\": 24, \"city\": \"宜昌\"}"; JSONObject json = JSONObject.parseObject(str2); String name = json.getString("name"); String age = json.getString("age"); String city = json.getString("city"); System.out.println(name); System.out.println(age); System.out.println(city);
運行結(jié)果:
全部代碼:
測試類:
import java.util.List; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; public class JsonArray { public static void main(String[] args) { String str = "[\"張三\",\"18\",\"宜昌\"]"; JSONArray array = JSONArray.parseArray(str); System.out.println(array.get(0)); System.out.println(array.get(1)); System.out.println(array.get(2)); System.out.println(); String str1 = "[" + " {\"name\": \"張三\", \"age\": 24, \"city\": \"宜昌\"}," + " {\"name\": \"李四\", \"age\": 25, \"city\": \"宜昌\"}," + " {\"name\": \"王五\", \"age\": 22, \"city\": \"宜昌\"}" + "]"; JSONArray array1 = JSONArray.parseArray(str1); System.out.println(array1.get(0).toString()); System.out.println(array1.get(1).toString()); System.out.println(array1.get(2).toString()); System.out.println(); List<User> array2 = JSONArray.parseArray(str1, User.class); for(int i = 0; i < array2.size(); i++) { System.out.println("姓名:"+array2.get(i).getName()+", 年齡:"+array2.get(i).getAge()+", 地址:"+array2.get(i).getCity()); } System.out.println(); String str2 = "{\"name\": \"張三\", \"age\": 24, \"city\": \"宜昌\"}"; User user = JSONArray.parseObject(str2, User.class); System.out.println("姓名:"+user.getName()+", 年齡:"+user.getAge()+", 地址:"+user.getCity()); System.out.println(); JSONObject json = JSONObject.parseObject(str2); String name = json.getString("name"); String age = json.getString("age"); String city = json.getString("city"); System.out.println(name); System.out.println(age); System.out.println(city); } }
測試類對應(yīng)的User類:
public class User { private String name; private String city; private Integer age; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public User(String name, String city, Integer age) { super(); this.name = name; this.city = city; this.age = age; } }
測試結(jié)果:
看完這篇關(guān)于如何使用java JSON解析庫Alibaba Fastjson的文章,如果覺得文章內(nèi)容寫得不錯的話,可以把它分享出去給更多人看到。
網(wǎng)站標(biāo)題:如何使用javaJSON解析庫AlibabaFastjson
當(dāng)前URL:http://muchs.cn/article8/pjjiip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、手機網(wǎng)站建設(shè)、網(wǎng)站改版、微信小程序、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)