今天在写javaweb工程的时候需要向前台传json格式的数据,用到了json-lib-2.4-jdk15.jar等一系列包,然而却出现如下状况:
CityBean是一个javaBean,我们看到,控制台只打印出了list的内容,而下面的两个却没能打印,这说明程序执行到JSON.Array.fromObject()时终止,而控制台没有报任何错误,也没有异常抛出,特别奇怪。
下面是有关JSON导入的包:
首先包的数量是正确的,而且都是我才从官网上下载好的,都是最新的版本,所以一开始我并没有将重心放到jar包上。
后来看到网上说List中的javaBean包含其它实体属性,打印出来是个内存值,在转换json的过程中异常,将实体属性转换成字符串重新填充即可,于是我在CityBean中重写了toString()方法:
可惜JSONArray.fromObject()仍然不执行。。。。。。
后来写了个test用JUnit调试了一下,终于报异常了
显示找不到lang下面的类????我明明导入了lang包啊。
据说tomcat是在它自己的lib目录下找jar包,如果jar包没有存放在tomcat的lib目录下,那么就会找不到。可是我放入了之后依旧报同样的错误。
最后我终于发现,我导入的是commons-lang3-3.7.jar,而程序需要的是commons-lang的jar包,后来去官网看了以前的版本,果然2.x的包lang后面没有紧跟着数字,同理commons-collections4-4.2.jar也应替换到之前的版本。
demo通过:
程序正常执行: