一、 所使用的包
JSONObject和JSONAarry是json-lib包下的類,要是用它們首先應該引入JSON-lib包以及相關依賴包commons-lang.jar、commons-beanutils.jar、commons-collections.jar、commons-logging.jar 、ezmorph.jar、json-lib-2.2.2-jdk15.jar
二、JSONArray和JSONObject的使用
JSONObject j1 = new JSONObject(); j1.put("小明","男"); j1.put("小紅","女"); //put方法裏放的key和value都是object System.out.println(j1); JSONObject j2 = new JSONObject(); j2.element("小明","男"); System.out.println(j2); j2.accumulate("小明","女"); System.out.println(j2); j2.accumulate("小紅","女"); System.out.println(j2); //{"小明":["男","女"],"小紅":"女"} JSONArray array = j2.getJSONArray("小明"); System.out.println(array); //["男","女"] Object o = array.get(0); System.out.println(o); // 男
這裏要注意put、element、accumulate的使用區別。它們分別都是添加鍵值對,put方法的key和value都可以是object,另外兩個方法的key必須是 string。當遇到key相同時,put方法會把value值替換掉,而accumulate會在當前key下生成一個JSONArray。element方法遇到key相同時,如果value不是空則執行accumulate方法,否則會移除這個key.
此外JSONObject.fromObject()方法可以將一個Object對象轉化爲JsonObject對象,打印出來的是Json格式。j1.getJSONObject()方法可以講一個String字符串轉化爲JSONObject對象。JSONObject對象還有很多別的方法,可以參看API。 在JSONObject的方法裏put作爲前綴的如果轉化失敗會出現異常,所以要try catch或者throw出去,而opt前綴的方法不會拋出異常。
JSONArray可以看成一個數組的形式。它使用add方法來添加元素,支持按索引添加,也可以之間添加一個Collection。取值時使用get方法,參數是index(第一個是0)索引。