java中處理json各種各樣轉換方法


  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集合

  示例代碼:

復制代碼
@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());
    }
復制代碼

  輸出結果:

[{"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對象的集合。

  示例代碼:

復制代碼
    @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);
        }
    }
復制代碼

  輸出結果:

[name=zhangSan,age=13]
[name=liSi,age=14]

2.JAVA實現XML與JSON互相轉換方法

  1.XML轉換為Json

public static String xmlToJson(String xml) {
  XMLSerializer serializer = new XMLSerializer();
  return serializer.read(xml).toString();
}

  2.JSON轉換為XML

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;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM