json数据转换异常:net.sf.json.JSONException: java.lang.reflect.InvocationTargetException
1 //存储Product对象的集合是从,Product是从mysql数据库中查询并添加的
2 ArrayList<Product> list = new ArrayList<Product>();
3
4 //设置响应对象编码
5 response.setCharacterEncoding("utf-8");
6 response.setContentType("text/html;charset=utf-8");
7
8 //将list集合转换成json格式
9 JSONArray json = JSONArray.fromObject(list);
10
11 //将json写出浏览器
12 response.getWriter().print(json);
Product类
public class Product implements Serializable{ private static final long serialVersionUID = -992811686857962266L; 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表示下架, 0表示不下架 private Category category; //商品所属的分类对象 public Product() {} public Product(String pid, String pname, Double market_price, Double shop_price, String pimage, Date pdate, Integer is_hot, String pdesc, Integer pflag, Category category) { this.pid = pid; this.pname = pname; this.market_price = market_price; this.shop_price = shop_price; this.pimage = pimage; this.pdate = pdate; this.is_hot = is_hot; this.pdesc = pdesc; this.pflag = pflag; this.category = category; } public String getPid() { return pid; } public void setPid(String pid) { this.pid = pid; } public String getPname() { return pname; } public void setPname(String pname) { this.pname = pname; } public Double getMarket_price() { return market_price; } public void setMarket_price(Double market_price) { this.market_price = market_price; } public Double getShop_price() { return shop_price; } public void setShop_price(Double shop_price) { this.shop_price = shop_price; } public String getPimage() { return pimage; } public void setPimage(String pimage) { this.pimage = pimage; } public Date getPdate() { return pdate; } public void setPdate(Date pdate) { this.pdate = pdate; } public Integer getIs_hot() { return is_hot; } public void setIs_hot(Integer is_hot) { this.is_hot = is_hot; } public String getPdesc() { return pdesc; } public void setPdesc(String pdesc) { this.pdesc = pdesc; } public Integer getPflag() { return pflag; } public void setPflag(Integer pflag) { this.pflag = pflag; } public Category getCategory() { return category; } public void setCategory(Category category) { this.category = category; } }
在将list转换成JSON格式的时候,从数据库里读出来的是java.sql.Date赋值给了java.util.Date,转化成JSONArray时出错
就会出现 et.sf.json.JSONException: java.lang.reflect.InvocationTargetException 异常