日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JSONArray.fromObject(list) list转json报错

發布時間:2023/12/10 javascript 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JSONArray.fromObject(list) list转json报错 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

做一個web應用? 瀏覽記錄用到ajax請求,將List<Product> list用JSONArray.fromObject(list) 轉換成json格式時莫名其妙地報錯

報錯如下:

net.sf.json.JSONException: java.lang.reflect.InvocationTargetExceptionat net.sf.json.JSONObject.defaultBeanProcessing(JSONObject.java:818)at net.sf.json.JSONObject._fromBean(JSONObject.java:699)at net.sf.json.JSONObject.fromObject(JSONObject.java:172)at net.sf.json.AbstractJSON._processValue(AbstractJSON.java:274)at net.sf.json.JSONObject._processValue(JSONObject.java:2655)at net.sf.json.JSONObject.processValue(JSONObject.java:2721)at net.sf.json.JSONObject.setInternal(JSONObject.java:2736)at net.sf.json.JSONObject.setValue(JSONObject.java:1424)at net.sf.json.JSONObject.defaultBeanProcessing(JSONObject.java:765)at net.sf.json.JSONObject._fromBean(JSONObject.java:699)at net.sf.json.JSONObject.fromObject(JSONObject.java:172)at net.sf.json.AbstractJSON._processValue(AbstractJSON.java:274)at net.sf.json.JSONArray._processValue(JSONArray.java:2513)at net.sf.json.JSONArray.processValue(JSONArray.java:2538)at net.sf.json.JSONArray.addValue(JSONArray.java:2525)at net.sf.json.JSONArray._fromCollection(JSONArray.java:1056)at net.sf.json.JSONArray.fromObject(JSONArray.java:123)at net.sf.json.JSONArray.fromObject(JSONArray.java:105)at com.itheima.utils.JsonUtil.list2json(JsonUtil.java:45)at com.itheima.utils.JsonUtil.main(JsonUtil.java:113) Caused by: java.lang.reflect.InvocationTargetExceptionat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:2170)at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1332)at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:770)at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:846)at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:426)at net.sf.json.JSONObject.defaultBeanProcessing(JSONObject.java:749)... 19 more Caused by: java.lang.IllegalArgumentExceptionat java.sql.Date.getHours(Date.java:187)... 29 more

Product? ?javabean如下

public class Product implements Serializable{//所有javabean都建議序列化 否則寫不到硬盤上private String pid;private String pname;private Double market_price;private Double shop_price;private String pimage;private Date pdate;private Integer is_hot=0;//是否熱門 1:熱門 0:否private String pdesc;private Integer pflag=1;//是否下架 1:下架 0:未下架//屬于哪個分類private Category category;//get set方法省略 ..... }

Category自定義對象? ?

Date 日期對象

其他都是基本類型包裝類

從數據庫查詢完畢后轉json就是報錯,改了一晚上,剛剛發現錯誤,一直抓著JSONObject不放,調了好久也沒有調好,最后的at java.sql.Date.getHours(Date.java:187)異常一直沒有引起我的注意,以為系統自定義的類,我沒法改,可問題關鍵就在這,list對象內有個成員是Date? API就不會轉換了,之前的beanutils封裝請求數據也是一樣,還要自己注冊一個date轉換方法,所以說date類型還是直接用string比較省事,數據庫兼容,java代碼又何必自找麻煩。

將date值都設置為null就好了? 我的瀏覽記錄功能恰好有用不到這個屬性值。。

總結

以上是生活随笔為你收集整理的JSONArray.fromObject(list) list转json报错的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。