碰到了一个json转换的问题,以下是测试代码:
List list = new ArrayList();
list.add( "first" );
list.add( "second" );
JSONArray jsonArray2 = JSONArray.fromObject( list );
程序执行到这行,JSONArray jsonArray2 = JSONArray.fromObject( list );
老是报下面的错误,找了半天也没找到,该引用的包我都引了啊,把源码下载下来debug,也没找到错误
java.lang.NoSuchMethodError: java.lang.ThreadLocal.remove()V
net.sf.json.AbstractJSON.removeInstance(AbstractJSON.java:221)
net.sf.json.JSONArray._fromCollection(JSONArray.java:909)
net.sf.json.JSONArray.fromObject(JSONArray.java:118)
net.sf.json.JSONSerializer.toJSON(JSONSerializer.java:105)
net.sf.json.JSONSerializer.toJSON(JSONSerializer.java:84)
caiwu.YsImportServlet.doPost(YsImportServlet.java:78)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
我jdk1.4的,下的jar包分别为
commons-httpclient-3.1.jar,commons-collections-3.2.1.jar,morph-1.1.1.jar,
json-lib-2.4-jdk13.jar,ezmorph-1.0.6.jar,commons-logging.jar,commons-lang-2.5.jar
commons-beanutils.jar
可能是jar包不兼容吧,但是不知道哪个jar包的问题,换了几个jar包也不行,期待高人的解答,谢谢!
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
看看这些的版本有没有问题
jdk1.4 ??
那我真的不能帮你了。。
[quote]commons-collections-3.2.1.jar,morph-1.1.1.jar,
json-lib-2.4-jdk13.jar,ezmorph-1.0.6.jar,commons-logging.jar,commons-lang-2.5.jar
commons-beanutils.jar [/quote]
这些版本太高了吧
或者看看json-lib包有没有损坏,重新下载一个试试
使用JDK 5吧
[url]http://www.iteye.com/topic/97384[/url]
[quote]remove是java.lang.ThreadLocal类的方法,但是jdk1.4中,却没有这个方法的实现,jdk1.5中有这个方法,因此是没问题的
看来jdk1.4是没法用这个json-lib-2.4-jdk13.jar包的,它官网上的这个json-lib-2.4-jdk13.jar根本就存在个bug,汗,
要想在jdk1.4下用,或者改json-lib-2.4-jdk13的源码,或者完善java.lang.ThreadLocal类,让它实现remove方法,不知道各位还有啥高见?[/quote]
我一直用的是
json-lib-*-jdk15.jar,jdk也用1.5,所以没遇过这问题
那就直接下载它的源码去修改,看看网上有没有修改的方法,或者下载更新的json-lib的源代码包,看它里面是怎么实现的