首页 > 代码库 > Java中的JSON

Java中的JSON

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中的不会都一样吧,不过方法差不多了。

Java中的JSON