當(dāng)前位置:
首頁(yè) >
前端技术
> javascript
>内容正文
javascript
Java对【JSON数据的解析】--Gson解析法
生活随笔
收集整理的這篇文章主要介紹了
Java对【JSON数据的解析】--Gson解析法
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Gson和fastjson分別為谷歌和阿里巴巴對(duì)JSON數(shù)據(jù)進(jìn)行處理封裝的jar包
兩者異同點(diǎn):
相同點(diǎn):都是根據(jù)JSON數(shù)據(jù)創(chuàng)建相應(yīng)的類不同點(diǎn):1.調(diào)用方式區(qū)別谷歌:方法都是非靜態(tài)的,需要先創(chuàng)建對(duì)象,再去調(diào)用阿里:方法都是靜態(tài)的,直接用類調(diào)用,不需要?jiǎng)?chuàng)建對(duì)象2.方法區(qū)別:谷歌:fromJson(參數(shù)1,參數(shù)2)阿里:JSON.parseXX(參數(shù)1,參數(shù)2)具體是parseObject()還是parseArray(),根據(jù)需要定要求:解析下面JSON數(shù)據(jù)
1.String string = “{name:’zhangsan’,age:18}”;
2.String string = “{persons:[{name:’zhangsan’,age:20},{name:’lisi’,age:21},{name:’wangwu’,age:22}]}”;
3.String string = “{no:1,name:’android’,employees:[{name:’zhangsan’,age:20},{name:’lisi’,age:21},{name:’wangwu’,age:22}]}”;
代碼:
第一題:
package 谷歌和阿里解析JSON數(shù)據(jù);import com.google.gson.Gson;public class Test {public static void main(String[] args) {//Gson解析JSON數(shù)據(jù)//1.創(chuàng)建對(duì)象Person,有屬性:name,age--創(chuàng)建結(jié)束String string = "{name:'zhangsan',age:18}";Gson gson=new Gson();Person person=gson.fromJson(string, Person.class);System.out.println(person.getName()+","+person.getAge());} }class Person{private String name;private int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Person [name=" + name + ", age=" + age + "]";}public Person(String name, int age) {super();this.name = name;this.age = age;}public Person() {super();}}運(yùn)行結(jié)果:
第2題:
package 谷歌和阿里解析JSON數(shù)據(jù);import java.util.ArrayList;import com.google.gson.Gson;public class Test2 {public static void main(String[] args) {//Gson解析時(shí),遇到對(duì)象創(chuàng)建對(duì)象,這個(gè)對(duì)象里所有的內(nèi)容鍵都作為對(duì)象的屬性//1.創(chuàng)建第一個(gè)對(duì)象,有屬性:persons,且為集合//2.persons集合里是對(duì)象,設(shè)對(duì)象為Person//3.Person,它有兩個(gè)屬性:name,age//4.相應(yīng)的類創(chuàng)建完畢后,就可以解析了String string = "{persons:[{name:'zhangsan',age:20},{name:'lisi',age:21},{name:'wangwu',age:22}]}";Gson gson=new Gson();Persons persons=gson.fromJson(string, Persons.class);System.out.println(persons);} }class Persons{private ArrayList<Person1> persons;public ArrayList<Person1> getPersons() {return persons;}public void setPersons(ArrayList<Person1> persons) {this.persons = persons;}@Overridepublic String toString() {return "Persons [persons=" + persons + "]";}public Persons(ArrayList<Person1> persons) {super();this.persons = persons;}public Persons() {super();}}class Person1{private String name;private int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Person [name=" + name + ", age=" + age + "]";}public Person1(String name, int age) {super();this.name = name;this.age = age;}public Person1() {super();} }運(yùn)行結(jié)果
第三題:
package 谷歌和阿里解析JSON數(shù)據(jù);import java.util.ArrayList;import com.google.gson.Gson;public class Test3 {public static void main(String[] args) {//1.第一個(gè)對(duì)象有屬性:no,name,employees,且employees為集合//2.employees數(shù)組中有對(duì)象,設(shè)該對(duì)象為Person//3.Person有屬性:name,age----創(chuàng)建結(jié)束String string = "{no:1,name:'android',employees:[{name:'zhangsan',age:20},{name:'lisi',age:21},{name:'wangwu',age:22}]}";Gson gson=new Gson();Demo demo=gson.fromJson(string, Demo.class);System.out.println(demo);} }class Demo{private int no;private String name;private ArrayList<Person2> employees;public int getNo() {return no;}public void setNo(int no) {this.no = no;}public String getName() {return name;}public void setName(String name) {this.name = name;}public ArrayList<Person2> getEmployees() {return employees;}public void setEmployees(ArrayList<Person2> employees) {this.employees = employees;}@Overridepublic String toString() {return "Demo [no=" + no + ", name=" + name + ", employees=" + employees + "]";}public Demo(int no, String name, ArrayList<Person2> employees) {super();this.no = no;this.name = name;this.employees = employees;}public Demo() {super();}}class Person2{private String name;private int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Person [name=" + name + ", age=" + age + "]";}public Person2(String name, int age) {super();this.name = name;this.age = age;}public Person2() {super();} }運(yùn)行結(jié)果:
總結(jié)
以上是生活随笔為你收集整理的Java对【JSON数据的解析】--Gson解析法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java对【JSON数据的解析】--官方
- 下一篇: Java对【JSON数据的解析】--fa