1.Java中導入包:java
①commons-lang-2.5.jar json
②commons-beanutils.jar數組
③commons-collections-3.2.1.jar 服務器
④commons-logging-1.1.1.jarspa
⑤ezmorph-1.0.6.jarcode
⑥json-lib-2.4-jdk15.jar對象
2.關於JSONArray和JSONObject:字符串
①JSONArray是一個動態數組,我的認爲相似ArrayList一類吧。get
②JSONObject是一種鍵值對的集合,我的認爲相似HashMap吧。it
3.既然集合裏面都有這些相似的東西了,那麼爲何還要使用JSON呢?我的認爲:我也不知道,那不是ArrayList的toString() 方法也是打印出其具體字符串內容嘛,爲啥還用JSON呀?
4.好了,開始代碼吧:
import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.ListIterator; import java.util.Map; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class Json { public static void main(String[] args) { JSONObject jsObj1 = new JSONObject(); jsObj1.put("gao", "111");//大唐名將:高仙芝 jsObj1.put("xian", "222"); jsObj1.put("zhi", "333"); System.out.println("經過構造器構造的JSONObject對象1:" + jsObj1); JSONObject jsObj2 = new JSONObject(); jsObj2.put("gao", "1111"); jsObj2.put("xian", "2222"); jsObj2.put("zhi", "3333"); System.out.println("經過構造器構造的JSONObject對象2:" + jsObj2); JSONObject jsObj3 = new JSONObject(); jsObj3.put("gao", "11111"); jsObj3.put("xian", "22222"); jsObj3.put("zhi", "33333"); System.out.println("經過構造器構造的JSONObject對象3:" + jsObj3); JSONArray jsArr1 = new JSONArray(); jsArr1.add(jsObj1); jsArr1.add(jsObj2); jsArr1.add(jsObj3); System.out.println("經過構造器構造的JSONArray對象1:" + jsArr1); String str = jsArr1.toString(); System.out.println("JSONArray對象1轉換成String對象str後的內容:"+str); List<Map<String, String>> listMap = new ArrayList<Map<String, String>>(); JSONArray jsArr2 = JSONArray.fromObject(str); System.out.println("JSON格式的字符串str轉換成JSONArray以後的JSONArray對象2:"+jsArr2); for (int i = 0; i < jsArr2.size(); i++) { JSONObject obj = JSONObject.fromObject(jsArr2.get(i)); Map<String, String> map = new HashMap<String, String>(); map.put("gao", obj.getString("gao")); map.put("xian", obj.getString("xian")); map.put("zhi", obj.getString("zhi")); listMap.add(map); } System.out.println("JSONArray對象2jsArr2轉換成List<Map<String, String>>對象listMap後:"+listMap); System.out.println("解析完成後:"); ListIterator iterator=listMap.listIterator(0); while(iterator.hasNext()){ Map<String, String> map = new HashMap<String, String>(); map=(Map<String, String>) iterator.next(); System.out.println(map.get("gao")); System.out.println(map.get("xian")); System.out.println(map.get("zhi")); } } }
5.總結:我的寫這個呢,是爲了實現Java的Servlet服務器向安卓客戶端傳輸數據所用,這只是在Java文件中解析JSON字符串,好像安卓裏面的JSON的定義和Java中的不會都同樣吧,不過方法差很少了。