1.Java中导入包:
①commons-lang-2.5.jar
②commons-beanutils.jar
③commons-collections-3.2.1.jar
④commons-logging-1.1.1.jar
⑤ezmorph-1.0.6.jar
⑥json-lib-2.4-jdk15.jar
2.关于JSONArray和JSONObject:
①JSONArray是一个动态数组,个人认为类似ArrayList一类吧。
②JSONObject是一种键值对的集合,个人认为类似HashMap吧。
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中的不会都一样吧,不过方法差不多了。