欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JSONArray.fromObject不执行且不报错问题的解决

程序员文章站 2023-11-14 08:57:22
今天在写javaweb工程的时候需要向前台传json格式的数据,用到了json-lib-2.4-jdk15.jar等一系列包,然而却出现如下状况: CityBean是一个javaBean,我们看到,控制台只打印出了list的内容,而下面的两个却没能打印,这说明程序执行到JSON.Array.from ......

    今天在写javaweb工程的时候需要向前台传json格式的数据,用到了json-lib-2.4-jdk15.jar等一系列包,然而却出现如下状况:

JSONArray.fromObject不执行且不报错问题的解决

 

    CityBean是一个javaBean,我们看到,控制台只打印出了list的内容,而下面的两个却没能打印,这说明程序执行到JSON.Array.fromObject()时终止,而控制台没有报任何错误,也没有异常抛出,特别奇怪。

    下面是有关JSON导入的包:

JSONArray.fromObject不执行且不报错问题的解决

 

    首先包的数量是正确的,而且都是我才从官网上下载好的,都是最新的版本,所以一开始我并没有将重心放到jar包上。   

    后来看到网上说List中的javaBean包含其它实体属性,打印出来是个内存值,在转换json的过程中异常,将实体属性转换成字符串重新填充即可,于是我在CityBean中重写了toString()方法:

JSONArray.fromObject不执行且不报错问题的解决

 

JSONArray.fromObject不执行且不报错问题的解决

 

    可惜JSONArray.fromObject()仍然不执行。。。。。。

    后来写了个test用JUnit调试了一下,终于报异常了

 

JSONArray.fromObject不执行且不报错问题的解决

 

JSONArray.fromObject不执行且不报错问题的解决

 

    显示找不到lang下面的类????我明明导入了lang包啊。

    据说tomcat是在它自己的lib目录下找jar包,如果jar包没有存放在tomcat的lib目录下,那么就会找不到。可是我放入了之后依旧报同样的错误。

    最后我终于发现,我导入的是commons-lang3-3.7.jar,而程序需要的是commons-lang的jar包,后来去官网看了以前的版本,果然2.x的包lang后面没有紧跟着数字,同理commons-collections4-4.2.jar也应替换到之前的版本。

JSONArray.fromObject不执行且不报错问题的解决

 

    demo通过:

JSONArray.fromObject不执行且不报错问题的解决

 

    程序正常执行:

JSONArray.fromObject不执行且不报错问题的解决