JSON解析转化list对象为String时出错

在Servlet中,尝试将从数据库获取的list<goods>转化为JSON字符串时,由于list中的goods对象含有java.sql.Date类型,导致JSONObject.fromObject()方法抛出异常。错误源于JSON库不支持直接转换java.sql.Date。解决方法是将java.sql.Date转换为java.util.Date再进行JSON序列化,例如使用new java.util.Date(sqldate.getTime())和new java.sql.Date(utildate.getTime())进行转换。
摘要由CSDN通过智能技术生成

花了将近两个小时解决这个问题。幸亏认真分析了所有报出的异常。

出问题的地方是这样的:客户端通过ajax访问servlet,servlet要调用service从数据库取出一个list<goods>,然后通过JSONArray将list转为String传回客户端。这时候servlet内的JSONArray.fromObject().toString();这个地方报错,主要详情如下,我的servlet是通过反射调用执行的方法。

Caused by: net.sf.json.JSONException: java.lang.reflect.InvocationTargetException
    at net.sf.json.JSONObject._fromBean(JSONObject.java:959)
    at net.sf.json.JSONObject.fromObject(JSONObject.java:194)
    at net.sf.json.JSONObject._processValue(JSONObject.java:2793)
    at net.sf.json.JSONObject._setInternal(JSONObject.java:2817)
    at net.sf.json.JSONObject.setValue(JSONObject.java:1527)
    at net.sf.json.JSONObject._fromBean(JSONObject.java:946)
    at net.sf.json.JSONObject.fromObject(JSONObject.java:194)
    at net.sf.json.JSONArray._processValue(JSONArray.java:2562)
    at net.sf.json.JSONArray.processValue(JSONArray.java:2593)
    at net.sf.json.J

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值