JAVA中的四種JSON解析方式詳解

2021-09-10 23:11:24 字數 3288 閱讀 7434

public class student 

public void setid(int id)

public string getname()

public void setname(string name)

public int getage()

public void setage(int age)

public student(int id, string name, int age)

public student()

@override

public string tostring()

}

public class grade 

public grade()

@override

public string tostring()

public int getid()

public void setid(int id)

public string getname()

public void setname(string name)

public arraylistgetstus()

public void setstus(arrayliststus)

}

json官方的解析最具有通用性,但是有點小麻煩。

public class jsontest ]}";

//陣列

string json2="['北京','天津','杭州']";

//1、

//解析第一層---物件

jsonobject jobject1=new jsonobject(json1);

grade grade=new grade();

grade.setid(jobject1.getint("id"));

grade.setname(jobject1.getstring("name"));

arrayliststus=new arraylist<>();

grade.setstus(stus);

//解析第二層----陣列

jsonarray jsonarray2=jobject1.getjsonarray("stus");

//遍歷陣列獲取元素----物件

for(int i=0;iiterator=jobject1.keys();

//      while (iterator.hasnext())

//2、

//獲取陣列物件

jsonarray jarray=new jsonarray(json2);

arraylistlist=new arraylist<>();

//遍歷獲取元素

for(int i=0;i

gson解析是谷歌的,也比較好用

public class gsontest ]}";

// 陣列

string json2 = "['北京','天津','杭州']";

gson gson=new gson();

//1、

//解析物件:第乙個引數:待解析的字串 第二個引數結果資料型別的class物件

grade grade=gson.fromjson(json1, grade.class);

system.out.println(grade);

//2、

//解析陣列要求使用type

arraylistlist=gson.fromjson(json2, 

new typetoken>(){}.gettype());

system.out.println(list);

}//生成

@test

public void test2()

grade grade=new grade(100001,"張三", list);

gson gson=new gson();

//將物件轉換為誒json格式字串

string json=gson.tojson(grade);

system.out.println(json);

}}

fastjson是阿里巴巴的產品,效率最高

public class fastjson ]}";

// 陣列

string json2 = "['北京','天津','杭州']";

//1、

//靜態方法

grade grade=json.parseobject(json1, grade.class);

system.out.println(grade);

//2、

listlist=json.parsearray(json2, string.class);

system.out.println(list);

}//生成

@test

public void test2()

grade grade=new grade(100001,"張三", list);

string json=json.tojsonstring(grade);

system.out.println(json);

}}

jackson解析json,springmvc內建的解析器就是這個

public class jacksontest ]}";

// 陣列

string json2 = "[\"北京\",\"天津\",\"杭州\"]";

//1、

system.out.println(grade);

//2、

new typereference>() );

system.out.println(list);

}//生成

@test

public void test2() throws jsonprocessingexception

grade grade=new grade(100001,"張三", list);

//將物件轉換為json格式字串

system.out.println(json);

}}

除了json官方的對類沒有要求,剩下的都要求是標準的類,否則無法解析,因為都用到了反射。

Java中四種XML解析技術

在平時工作中,難免會遇到把 xml 作為資料儲存格式。面對目前種類繁多的解決方案,哪個最適合我們呢?在這篇文章中,我對這四種主流方案做乙個不完全評測,僅僅針對遍歷 xml 這塊來測試,因為遍歷 xml 是工作中使用最多的 至少我認為 預 備 測試環境 amd 毒龍1.4g oc 1.5g 256m ...

Java中四種XML解析技術

自 http www.it.com.cn f edu 053 27 93819.htm 在平時工作中,難免會遇到把 xml 作為資料儲存格式。面對目前種類繁多的解決方案,哪個最適合我們呢?在這篇文章中,我對這四種主流方案做乙個不完全評測,僅僅針對遍歷 xml 這塊來測試,因為遍歷 xml 是工作中使...

Java中四種XML解析技術

在平時工作中,難免會遇到把 xml 作為資料儲存格式。面對目前種類繁多的解決方案,哪個最適合我們呢?在這篇文章中,我對這四種主流方案做乙個不完全評測,僅僅針對遍歷 xml 這塊來測試,因為遍歷 xml 是工作中使用最多的 至少我認為 預 備 測試環境 amd 毒龍1.4g oc 1.5g 256m ...