日期:2014-05-16  浏览次数:20458 次

json数据格式解析3–利用第三方json-lib进行解析json

?

本文转自:http://www.happyalaric.com/archives/396

?

?

?

?

?

前两节讲过了json数据格式和json解析原理,为了不重复发明轮子,我们这节来介绍利用第三方jar工具来解析数据。
首先我们还是到json.org, 来下载jar帮助我们解析json数据。
我们在官方选择java下面的
json-lib

一、介绍
json-lib是一个java类库,提供将Java对象,包括beans, maps, collections, java arrays and XML等转换成JSON,或者反向转换的功能。

二、下载
进入http://json-lib.sourceforge.net/ 点击左边download
选择home下面的json-lib 到下载页面 点击json-lib-2.4-jdk15-sources.jar, json-lib-2.4-jdk15-javadoc.jar直接下载,这个是源码利于我们学习。再下一份编译好的jar json-lib-2.4-jdk15.jar。
下载地址:http://sourceforge.net/projects/json-lib/files/json-lib/json-lib-2.4/json-lib-2.4-jdk15-javadoc.jar

三、演练
将我们下载的json-lib-2.4-jdk15-sources.jar导入到我们的eclipse工程里面。
然后写个简单例子
package json;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

/**
*
*【描述】:
*【作者】:alaric
*【时间 】:Jun 1, 2012
*【文件】:jsonTest.java
*
*/
public class Test {

public static void main(String[] args) {
JSONArray jaArray = new JSONArray();
jaArray.add(“苹果”);
jaArray.add(1, “梨子”);
System.out.println(jaArray.toString());

String jsonString = “{‘zhangsan’:'ddd’,'lisi’:'ddddd’}”;
JSONObject jsonObject = JSONObject.fromObject(jsonString);
System.out.println(jsonObject.get(“zhangsan”));
System.out.println(jsonObject.get(“lisi”));
}
}

结果报
Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException
这样一来就知道是依赖别的包了
再回到http://json-lib.sourceforge.net/ 一看发现有这么一段
Json-lib comes in two flavors, depending on the jdk compatibility. json-lib-x.x-jdk13 is compatible with JDK 1.3.1 and upwards. json-lib-x.x-jdk15 is compatible with JDK 1.5, includes support for Enums in JSONArray and JSONObject. Please reffer to the appropriate javadoc links available in the project menu.

Json-lib requires (at least) the following dependencies in your classpath:

jakarta commons-lang 2.5
jakarta commons-beanutils 1.8.0
jakarta commons-collections 3.2.1
jakarta commons-logging 1.1.1
ezmorph 1.0.6
Other dependencies are needed if working with XML andGroovy. Please review the Dependencies report to know more about those extra dependencies.
意思是说后缀是13的依赖于jdk1.3,15的依赖于jdk1.5 在JSONArray和JSONObject中也支持枚举
json-lib 至少需要依赖你的classpath上面那些包。

点击下面的连接下载这些依赖
查看依赖树
[img][/img]


下载后倒入工程:
运行程序
输出:
["苹果","梨子"]
ddd
ddddd

?

?

?