java中處理json各種各樣的轉(zhuǎn)換方法(推薦)
JSON 即 JavaScript Object Natation,它是一種輕量級(jí)的數(shù)據(jù)交換格式,非常適合于服務(wù)器與 JavaScript 的交互。本文將快速講解 JSON 格式,并通過(guò)代碼示例演示如何分別在客戶端和服務(wù)器端進(jìn)行 JSON 格式數(shù)據(jù)的處理。
Json必需的包:
commons-httpclient-3.1.jar
commons-lang-2.4.jar
commons-logging-1.1.1.jar
json-lib-2.2.3-jdk13.jar
ezmorph-1.0.6.jar
commons-collections-3.2.1.jar
出現(xiàn)java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher錯(cuò)誤是因?yàn)闆]有導(dǎo)入ezmorph.jar文件或版本不對(duì)。
出現(xiàn)java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ListOrderedMap錯(cuò)誤是因?yàn)闆]有導(dǎo)入commons-collections.jar文件或版本不對(duì)。
1.java集合 json集合之間的轉(zhuǎn)換
1. Java集合轉(zhuǎn)換成Json集合
關(guān)鍵類:JSONArray jsonArray = JSONArray.fromObject(Object obj);
使用說(shuō)明:將Java集合對(duì)象直接傳進(jìn)JSONArray.fromObject()中,得到一個(gè)JSONArray集合,再直接使用JSONArray的toString()方法,便可得到j(luò)son集合
示例代碼:
@Test
public void testCreateJsonArray() {
//Java集合
List<Employee> list = new ArrayList<Employee>();
list.add(new Employee("zhangSan","13"));
list.add(new Employee("liSi","14"));
//創(chuàng)建json集合
JSONArray jsonArray = JSONArray.fromObject(list);
System.out.println(jsonArray.toString());
}
輸出結(jié)果:
[{"age":"13","name":"zhangSan"},{"age":"14","name":"liSi"}]
2. Json集合轉(zhuǎn)換成Java集合
關(guān)鍵類: JSONArray jsonArray = JSONArray.fromObject(Object obj);
使用說(shuō)明:將json字符串對(duì)象傳入,便可得到一個(gè)JSONArray對(duì)象,再調(diào)用JSONArray對(duì)象的toCollection(JSONArray jsonArray, Class clss)方法,便可得到一個(gè)Java對(duì)象的集合。
示例代碼:
@Test
public void testParseJsonArray() {
//json集合
String jsonString = "[{\"age\":\"13\",\"name\":\"zhangSan\"},{\"age\":\"14\",\"name\":\"liSi\"}]";
JSONArray jsonArray = JSONArray.fromObject(jsonString);
//Java集合
List<Employee> list = (List<Employee>) jsonArray.toCollection(jsonArray, Employee.class);
for(Employee employee : list){
System.out.println(employee);
}
}
輸出結(jié)果:
[name=zhangSan,age=13] [name=liSi,age=14]
2.JAVA實(shí)現(xiàn)XML與JSON互相轉(zhuǎn)換方法
1.XML轉(zhuǎn)換為Json
public static String xmlToJson(String xml) {
XMLSerializer serializer = new XMLSerializer();
return serializer.read(xml).toString();
}
2.JSON轉(zhuǎn)換為XML
public static String jsonToXML(String json) {
XMLSerializer xmlSerializer = new XMLSerializer();
// 根節(jié)點(diǎn)名稱
xmlSerializer.setRootName("xml");
// 不對(duì)類型進(jìn)行設(shè)置
xmlSerializer.setTypeHintsEnabled(false);
String xmlStr = "";
if (json.contains("[") && json.contains("]")) {
// jsonArray
JSONArray jobj = JSONArray.fromObject(json);
xmlStr = xmlSerializer.write(jobj);
} else {
// jsonObject
JSONObject jobj = JSONObject.fromObject(json);
xmlStr = xmlSerializer.write(jobj);
}
System.out.println("轉(zhuǎn)換后的參數(shù):" + xmlStr);
return xmlStr;
}
以上這篇java中處理json各種各樣的轉(zhuǎn)換方法(推薦)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
如何解決idea的Module:‘:app‘platform‘a(chǎn)ndroid-32‘not found.問題
這篇文章主要介紹了如何解決idea的Module:‘:app‘platform‘a(chǎn)ndroid-32‘not found.問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04
關(guān)于Integer.parseInt()方法的使用
這篇文章主要介紹了關(guān)于Integer.parseInt()方法的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
java去除中文括號(hào)小括號(hào),或者英文括號(hào)的實(shí)例代碼
這篇文章主要介紹了java去除中文括號(hào)小括號(hào),或者英文括號(hào)的實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09
Java配置JDK開發(fā)環(huán)境及環(huán)境變量
這篇文章主要為大家詳細(xì)介紹了Java配置JDK開發(fā)環(huán)境及環(huán)境變量,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09
基于mybatis中<include>標(biāo)簽的作用說(shuō)明
這篇文章主要介紹了基于mybatis中<include>標(biāo)簽的作用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02

