將資料封裝為Json資料格式
1. List集合轉換成json程式碼 List list = new ArrayList(); list.add( "first" ); list.add( "second" ); JSONArray jsonArray2 = JSONArray.fromObject( list ); 2. Map集合轉換成json程式碼 Map map = new HashMap(); map.put("name", "json"); map.put("bool", Boolean.TRUE); map.put("int", new Integer(1)); map.put("arr", new String[] { "a", "b" }); map.put("func", "function(i){ return this.arr[i]; }"); JSONObject json = JSONObject.fromObject(map); 3. Bean轉換成json程式碼 JSONObject jsonObject = JSONObject.fromObject(new JsonBean()); 4. 陣列轉換成json程式碼 boolean[] boolArray = new boolean[] { true, false, true }; JSONArray jsonArray1 = JSONArray.fromObject(boolArray); 5. 一般資料轉換成json程式碼 JSONArray jsonArray3 = JSONArray.fromObject("['json','is','easy']" );
// 普通的資料轉化為json格式 public static void test3() { String str = "["; str += "'wy','12'"; str += "]"; System.out.println(str); JSONArray obj = JSONArray.fromObject(str); System.out.println(obj); // {"name":"wy","age":"12"} } // 普通的資料轉化為json格式 public void test2() { String str = "{"; str += "name:["; str += "'wy','eu','we'"; str += "]"; str += "}"; System.out.println(str); JSONObject obj = JSONObject.fromObject(str); System.out.println(obj); } // list 格式轉化為json public void test1() { List list = new ArrayList(); for(int i = 0; i < 10; i++) { list.add("test" + i); } System.out.println(list); JSONArray js = JSONArray.fromObject(list); System.out.println(js); }
1.Google Json利器之Gson
Gson是 Google 提供的用來在 Java 物件和 JSON 資料之間進行對映的 Java 類庫。可以將一個 JSON 字串轉成一個 Java 物件,或者反過來。
關於Gson更詳細的資料,請訪問這裡:
GsonAPI:Gson最新版本的API文件
Gson user guide:在程式碼中使用Gson進行JSON格式轉換的一些例子
2.阿里巴巴 Json利器之FastJson
阿里巴巴說,fastjson是最快的json庫。特別在parser方面,fastjson的效能令人驚奇,甚至超越了二進位制協議的
關於FastJson的具體文件資料,點點這裡。
3.IBM Json利器之Json4J
IBM封裝的一個json工具包,官方的介紹倒是不少,不過真正的使用者不多。官方的介紹文字貼一下吧。
簡單 Java 模型,用於構造和處理要作為 JSON 實現來呈示的資料。
在期望將 Web Service 產生的 XML 應答轉換為 JSON 結構,以方便在“非同步 JavaScript 和 XML”(Ajax) 應用程式中使用的情況下,能夠從 XML 快速轉換為 JSON。進行這種轉換帶來好處,即採用 Ajax 模式的應用程式可以處理採用 JSON 格式的資料,而在 Microsoft InternetExplorer XML 變換和其他特定於平臺的 XML 解析器中不必依賴 ActiveX 物件。此外,採用 JSON 格式的資料更容易壓縮,因此傳輸效率更高。
JSON 字串和流解析器,它可以生成相應的 JSONObject,此物件採用 Java 語言來表示 JSON 結構。然後,您可以更改此 JSONObject,並將更改應用於 JSON 實現。
json-lib和org.json的使用幾乎是相同的,我總結出的區別有兩點:
1. org.json比json-lib要輕量得多,前者沒有依賴任何其他jar包,而後者要依賴ezmorph和commons的lang、logging、beanutils、collections等元件
2. json-lib在構造bean和解析bean時比org.json要方便的多,json-lib可直接與bean互相轉換,而org.json不能直接與bean相互轉換而需要map作為中轉,若將bean轉為json資料,首先需要先將bean轉換為map再將map轉為json,比較麻煩。