一、 测试类
public static void main(String[] args) {
String str="{\"value\":\"我是测试value值\"}";
//String -->json
net.sf.json.JSONObject json=net.sf.json.JSONObject.fromObject(str);
System.out.println("String-->json结果="+json);
//String -->Map 或 json -->map
net.sf.json.JSONObject jsonObj = net.sf.json.JSONObject.fromObject(str);
Map<String, String> map =(Map<String, String>)jsonObj;
System.out.println("String-->map结果="+map.toString());
}
代码执行之后,控制台报如下错误信息:
Exception in thread "main" java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher
at com.study.dang.test.base.TestString5.main(TestString5.java:14)
Caused by: java.lang.ClassNotFoundException: net.sf.ezmorph.Morpher
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 1 more
二、解决办法
原因分析:
使用JSON时,除了要导入JSON网站上面下载的json-lib-2.2-jdk15.jar包之外,
还必须有其它几个依赖包:
commons-beanutils.jar,commons-httpclient.jar,commons-lang.jar,ezmorph.jar,morph-1.0.1.jar 这几个包也是需要导入的.
如果缺少里面的:ezmorph.jar包,则即出现上述异常。
解决办法:
在pom.xml中添加依赖:
<dependency>
<groupId>net.sf.ezmorph</groupId>
<artifactId>ezmorph</artifactId>
<version>1.0.6</version>
</dependency>
当jar生效(成功导入)后,再次执行main方法,一切正常了。
原文链接:https://blog.csdn.net/zengdeqing2012/article/details/52053832