net.sf.json.JSONException: java.lang.reflect.InvocationTargetException
2014-01-17 14:14
447 查看
net.sf.json.JSONException: java.lang.reflect.InvocationTargetException
博客分类: json.netJavajsonHibernate
利用json-lib把对象转化为JsonObject对象时抛出net.sf.json.JSONException: java.lang.reflect.InvocationTargetException异常
这个异常一般是如下三种情况造成的:
对象中存在属性为Date类型或Date的子类型(如java.sql.Date和TimeStamp等)
hibernate延时加载
关联的记录不存在
1,解决:日期
定义一个类,实现JsonValueProcessor,重写方法
import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; import net.sf.json.JsonConfig; import net.sf.json.processors.JsonValueProcessor; /** * @author Rick * */ public class JSONDateValueProcessor implements JsonValueProcessor { private String format = "yyyy-MM-dd hh:mm:ss"; public Object processArrayValue(Object value, JsonConfig config) { return process(value); } public Object processObjectValue(String key, Object value, JsonConfig config) { return process(value); } private Object process(Object value) { if (value instanceof Date) { SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.CHINA); return sdf.format(value); } return value == null ? "" : value.toString(); } }在创建json对象时,按如下
JsonConfig jsonConfig = new JsonConfig(); jsonConfig.registerJsonValueProcessor(Date.class, new JSONDateValueProcessor()); Map<String, Object> map=new HashMap<String,Object>(); map.put("sites",sites); map.put("total",count); json=JSONObject.fromObject(map,jsonConfig);
2,解决:hibernate延时加载 设置
Java代码
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setExcludes(new String[]{"handler","hibernateLazyInitializer"});
JSONObject json=JSONObject.fromObject(map,jsonConfig)
3,解决:关联记录不存在
如果异常中有存在
No row with the given identifier exists: [com.xxx.XXX#001]这样的信息存在,那造成的原因就是由于关联的记录不存在造成的,如A和B一对多,在B中配置属性a,如果关联记录的a不存在的话会出现这个异常。
解决办法1,在关联上配置not-found='ignore'
2,删掉不合法的数据
相关文章推荐
- MySQL抛出Incorrect string value异常分析
- ASP JSON类文件的使用方法
- PHP6 先修班 JSON实例代码
- 关于JSON以及JSON在PHP中的应用技巧
- jquery中ajax调用json数据的使用说明
- JQuery 解析多维的Json数据格式
- Ajax与JSON的一些学习总结
- JQuery将文本转化成JSON对象需要注意的问题
- jQuery 中使用JSON的实现代码
- 用JavaScript对JSON进行模式匹配 (Part 2 - 实现)
- Hibernate Oracle sequence的使用技巧
- jsp Hibernate批量更新和批量删除处理代码
- jsp hibernate的分页代码第1/3页
- 对Java中JSON解析器的一些见解
- js实现json数据行到列的转换的实例代码
- .NET(C#):Emit创建异常处理的方法
- jQuery1.4.2与老版本json格式兼容的解决方法
- JAVA+Hibernate 无限级分类
- SSH整合中 hibernate托管给Spring得到SessionFactory
- jsp hibernate 数据保存操作的原理