一、 所使用的包
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)索引。
转载于:https://blog.51cto.com/blithe/1958734