1.JSON依赖的jar包
在Java中使用json需要引入以下六个jar包,分别为:
json-lib-2.4-jdk15.jar
ezmorph-1.0.6.jar
commons-lang-2.6.jar
commons-collections-3.2.2.jar
commons-beanutils-1.9.4.jar
commons-logging-1.2.jar
以上的版本号仅供参考,自行下载的可以有所不同。
2.下载地址
下载地址如下:
- json-lib-2.4-jdk15.jar
https://sourceforge.net/projects/json-lib/files/json-lib/json-lib-2.4/
- ezmorph-1.0.6.jar
http://ezmorph.sourceforge.net/
http://morph.sourceforge.net/
- commons-lang-2.6.jar
- commons-collections-3.2.2.jar
http://commons.apache.org/collections/download_collections.cgi
- commons-beanutils-1.9.4.jar
- commons-logging-1.2.jar
3.下载方法
关于下载四个commons包的提示
进到下载官网,我们可以看到,这里有两个不同的下载地方,
分别是
Apache Commons Lang 3.12.0(Java8+)
Apache Commons Lang 2.6 (Requires Java 1.2 or later)
我们需要选择第二个,然后下载Binaries中的第二个压缩包
下载好压缩包后就可以进行解压了,解压目录如下,我们只需要吧commons-lang-2.6.jar复制出来就可以了。
剩下的三个commons的包同上操作。
最后把六个jar包整理到一个文件夹里存放好,这样我们就拥有了一个完整的JSON库了,后面开发的时候直接把这六个包放到库中就可以使用JSON了。
4.遇到的报错
如果jar包没下载完整或者下载错了就会遇到一些报错,大多都是提示找不到某个类。
如果缺少任何一个包,一般都会报:NoClassDefFoundError
无 json-lib-2.4-jdk15.jar
java.lang.NoClassDefFoundError:java.lang.NoClassDefFoundError: net/sf/json/JSONObject
无ezmorph-1.0.6.jar
java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher
无commons-lang-2.6.jar
java.lang.NoClassDefFoundError:org/apache/commons/collections/map/ListOrderedMap commons-lang-2.5.jar
无commons-collections-3.2.2.jar
java.lang.NoClassDefFoundError:org/apache/commons/collections/map/ListOrderedMap
无commons-beanutils-1.9.4.jar
java.lang.NoClassDefFoundError:org/apache/commons/beanutils/DynaBean
无commons-logging-1.2.jar
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
还有一种情况是下载错了包,在下载方法中第一个与第二个的区别在于里面的包名不同,这个会导致类加载器无法加载到相关的类,然后也会报出加载器无法找到类的错误。
对比图如下:
第一个与第二个包名的区别在于多了个3字,其余三个commons包也是类似的,新版本的commons包名都是改过了的。
5.使用方法
在IDEA中
一般在web开发中使用JSON作为数据传输格式
我们把JSON的包放到如下所示位置:
这里的lib装的是整项目所用到的库文件。
在Android Studio中
先把目录结构切换到Project,因为在这个目录下可以看见libs目录
同样,把JSON的包复制进去就可以了