JSON 即 JavaScript Object Natation,它是一種輕量級的數據交換格式,非常適合于服務器與 JavaScript 的交互。本文將快速講解 JSON 格式,并通過代碼示例演示如何分別在客戶端和服務器端進行 JSON 格式數據的處理。
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
出現java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher錯誤是因為沒有導入ezmorph.jar文件或版本不對。
出現java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ListOrderedMap錯誤是因為沒有導入commons-collections.jar文件或版本不對。
1.java集合 json集合之間的轉換
1. Java集合轉換成Json集合
關鍵類:JSONArray jsonArray = JSONArray.fromObject(Object obj);
使用說明:將Java集合對象直接傳進JSONArray.fromObject()中,得到一個JSONArray集合,再直接使用JSONArray的toString()方法,便可得到json集合
示例代碼:
1
2
3
4
5
6
7
8
9
10
|
@Test public void testCreateJsonArray() { //Java集合 List< Employee > list = new ArrayList< Employee >(); list.add(new Employee("zhangSan","13")); list.add(new Employee("liSi","14")); //創建json集合 JSONArray jsonArray = JSONArray.fromObject(list); System.out.println(jsonArray.toString()); } |
輸出結果:
1
|
[{"age":"13","name":"zhangSan"},{"age":"14","name":"liSi"}] |
2. Json集合轉換成Java集合
關鍵類: JSONArray jsonArray = JSONArray.fromObject(Object obj);
使用說明:將json字符串對象傳入,便可得到一個JSONArray對象,再調用JSONArray對象的toCollection(JSONArray jsonArray, Class clss)方法,便可得到一個Java對象的集合。
示例代碼:
1
2
3
4
5
6
7
8
9
10
11
12
|
@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); } } |
輸出結果:
1
2
|
[name=zhangSan,age=13] [name=liSi,age=14] |
2.JAVA實現XML與JSON互相轉換方法
1.XML轉換為Json
1
2
3
4
|
public static String xmlToJson(String xml) { XMLSerializer serializer = new XMLSerializer(); return serializer.read(xml).toString(); } |
2.JSON轉換為XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
public static String jsonToXML(String json) { XMLSerializer xmlSerializer = new XMLSerializer(); // 根節點名稱 xmlSerializer.setRootName("xml"); // 不對類型進行設置 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("轉換后的參數:" + xmlStr); return xmlStr; } |
以上這篇java中處理json各種各樣的轉換方法(推薦)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。
原文鏈接:https://www.cnblogs.com/houlijun/p/6795551.html