摘要
在Java web中,在数据库查询出来的list需要先转换成json格式,然后再转换成字符串才能传输。这里介绍List泛型与JSON互换的方法。
转换方法如下:
List<Bean> list = new ArrayList<Bean>();
//java list转成json array
JSONArray json_arr =JSONArray.fromObject(list);
//json array 转String
String json_str = json_arr.toString();
//java对象 转成 json对象
JSONObject json= JSONObject.fromObject(BeanInstance);
//json对象 转 String
String json_str=json.toString());
//获取json array
JSONArray jsonArray = JSONArray.fromObject(json);
//json转成java list
List<String> list = (List)JSONArray.toCollection(jsonArray);
//获取json object对象
JSONObject jsonObject = JSONObject.fromObject(BeanInstance);
//json转化为java 对象
Object object = (Object) JSONObject.toBean(jsonObject);
注意:运用上述方法转换List时,如果从数据查询出来的数据含有java.sql.Date(即时间类型的字段),极有可能报如下错误:
//net.sf.json.JSONException:java.lang.reflect.InvocationTargetException
解决办法
//将数据库取出的时间转换成util的Date
java.util.Date date = new java.util.Date(rs.getDate("blog_date").getTime());
//写入到bean中
bVo.setBlogDate(date);
搞定!