這篇文章主要介紹了JAVA中json如何解析,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
一、什么是JSON
JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,采用完全獨(dú)立于編程語(yǔ)言的文本格式來(lái)存儲(chǔ)和表示數(shù)據(jù)。簡(jiǎn)潔和清晰的層次結(jié)構(gòu)使得 JSON 成為理想的數(shù)據(jù)交換語(yǔ)言。 易于閱讀和編寫(xiě),同時(shí)也易于解析和生成,并有效地提升網(wǎng)絡(luò)傳輸效率。
二、JSON 語(yǔ)法
(1)數(shù)據(jù)在名稱(chēng)/值對(duì)中
(2)數(shù)據(jù)由逗號(hào)分隔
(3)大括號(hào)保存對(duì)象
(4)中括號(hào)保存數(shù)組
三、Java中JSON的生成與解析的四種方式(簡(jiǎn)單的Demo):
一個(gè)實(shí)體類(lèi):用于與JSON數(shù)據(jù)進(jìn)行相互轉(zhuǎn)換
public class Person { private String name; private String sex; private int age; public Person(String name, String sex, int age) { this.name = name; this.sex = sex; this.age = age; } public String getName() { return name; } public String getSex() { return sex; } public int getAge() { return age; } @Override public String toString() { return "Person{name='" + name + '\'' + ", sex='" + sex + '\'' + ", age=" + age + '}'; } }
(1)利用傳統(tǒng)方式:
由實(shí)體類(lèi)生成Json字符串:
public Person getPerson(){ return new Person("張三", "男", 25); } @Test public void EntityToJson(){ JSONObject jsonObject = new JSONObject(); jsonObject.put("name", getPerson().getName()); jsonObject.put("sex", getPerson().getSex()); jsonObject.put("age", getPerson().getAge()); System.out.println(jsonObject.toString()); }
由Json字符串生成實(shí)體類(lèi):
@Test public void JsonToEntity(){ String jsonString = "{\"sex\":\"男\(zhòng)",\"name\":\"張三\",\"age\":25}"; JSONObject jsonObject = new JSONObject(jsonString); Person person = new Person(jsonObject.get("name").toString(), jsonObject.get("sex").toString(), Integer.valueOf(jsonObject.get("age").toString())); System.out.println(person.toString()); }
(2)利用Jackson方式:
由實(shí)體類(lèi)生成Json字符串:
@Test public void EntityToJson() throws IOException { Person person = new Person("張三", "男", 25); ObjectMapper objectMapper = new ObjectMapper(); String jsonString = objectMapper.writeValueAsString(person); System.out.println(jsonString); }
由Json字符串生成實(shí)體類(lèi):
@Test public void JsonToEntity() throws IOException { ObjectMapper objectMapper = new ObjectMapper(); String jsonString = "{\"name\":\"張三\",\"sex\":\"男\(zhòng)",\"age\":25}"; Person person = objectMapper.readValue(jsonString, Person.class); System.out.println(person); }
(3)利用GSON方式:
由實(shí)體類(lèi)生成Json字符串:
@Test public void EntityToJson(){ Person person = new Person("張三", "男", 25); Gson gson = new Gson(); String jsonString = gson.toJson(person); System.out.println(jsonString); }
由Json字符串生成實(shí)體類(lèi):
@Test public void JsonToEntity(){ String jsonString = "{\"name\":\"張三\",\"sex\":\"男\(zhòng)",\"age\":25}"; Gson gson = new Gson(); Person person = gson.fromJson(jsonString, Person.class); System.out.println(person.toString()); }
(4)利用FastJSON方式
由實(shí)體類(lèi)生成Json字符串:
@Test public void EntityToJson(){ Person person = new Person("張三", "男", 25); Object jsonString = JSON.toJSON(person); System.out.println(jsonString.toString()); }
由Json字符串生成實(shí)體類(lèi):
@Test public void JsonToEntity(){ String jsonString = "{\"name\":\"張三\",\"sex\":\"男\(zhòng)",\"age\":25}"; Person person = JSON.parseObject(jsonString, Person.class); System.out.println(person.toString()); }
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享JAVA中json如何解析內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問(wèn)題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來(lái)學(xué)習(xí)!
新聞標(biāo)題:JAVA中json如何解析-創(chuàng)新互聯(lián)
本文來(lái)源:http://www.chinadenli.net/article10/diccgo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、網(wǎng)站改版、域名注冊(cè)、云服務(wù)器、建站公司、用戶體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容