您好,登錄后才能下訂單哦!
這篇文章主要介紹了JAVA中json如何解析,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
一、什么是JSON
JSON是一種輕量級的數(shù)據(jù)交換格式,采用完全獨立于編程語言的文本格式來存儲和表示數(shù)據(jù)。簡潔和清晰的層次結(jié)構(gòu)使得 JSON 成為理想的數(shù)據(jù)交換語言。 易于閱讀和編寫,同時也易于解析和生成,并有效地提升網(wǎng)絡傳輸效率。
二、JSON 語法
(1)數(shù)據(jù)在名稱/值對中
(2)數(shù)據(jù)由逗號分隔
(3)大括號保存對象
(4)中括號保存數(shù)組
三、Java中JSON的生成與解析的四種方式(簡單的Demo):
一個實體類:用于與JSON數(shù)據(jù)進行相互轉(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)方式:
由實體類生成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字符串生成實體類:
@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方式:
由實體類生成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字符串生成實體類:
@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方式:
由實體類生成Json字符串:
@Test public void EntityToJson(){ Person person = new Person("張三", "男", 25); Gson gson = new Gson(); String jsonString = gson.toJson(person); System.out.println(jsonString); }
由Json字符串生成實體類:
@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方式
由實體類生成Json字符串:
@Test public void EntityToJson(){ Person person = new Person("張三", "男", 25); Object jsonString = JSON.toJSON(person); System.out.println(jsonString.toString()); }
由Json字符串生成實體類:
@Test public void JsonToEntity(){ String jsonString = "{\"name\":\"張三\",\"sex\":\"男\(zhòng)",\"age\":25}"; Person person = JSON.parseObject(jsonString, Person.class); System.out.println(person.toString()); }
感謝你能夠認真閱讀完這篇文章,希望小編分享JAVA中json如何解析內(nèi)容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業(yè)資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。