今天在寫javaweb工程的時候需要向前臺傳json格式的數據,用到了json-lib-2.4-jdk15.jar等一系列包,然而卻出現如下狀況: CityBean是一個javaBean,我們看到,控制台只列印出了list的內容,而下麵的兩個卻沒能列印,這說明程式執行到JSON.Array.from ...
今天在寫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通過:
程式正常執行: