JSON 转化为java对象
JSON作为一种轻量级数据交换工具,使用是非常方便的。但在同J2EE后台交互的时候,需要将JSON直接转化为我们工程中的java持久对象经行业务操作或直接持久化到数据库。现在有很多这种数据转化工具,我们项目中使用了JSON-tool第三包,使用的步骤为:
1. 接受前台json数据
String data = request.getParameter("data");
2. 通过接收到的json数据构建一个JSONObject或是一个JSONArray
JSONObject json = new JSONObject(data);
3. 通过JSONMapper的tojava()方法将JSONObject转化为我们需要的对象。
但在处理的过程中,如果遇到主外键关联的时候很不好处理,容易出错,所以就想到了根据java的反射
机制动态去转化JSON对象为pojo对象。
private Object fromJsonToJava(JSONObject json,Class pojo)
throws Exception{
// 首先得到pojo所定义的字段
Field [] fields = pojo.getDeclaredFields();
// 根据传入的Class动态生成pojo对象
Object obj = pojo.newInstance();
for(Field field: fields){
// 设置字段可访问(必须,否则报错)
field.setAccessible(true);
// 得到字段的属性名
String name = field.getName();
// 这一段的作用是如果字段在JSONObject中不存在会抛出异常,如果出异常,则跳过。
try{
json.get(name);
}catch(Exception ex){
continue;
}
if(json.get(name) != null && !"".equals(json.getString(name))){
// 根据字段的类型将值转化为相应的类型,并设置到生成的对象中。
if(field.getType().equals(Long.class) || field.getType().equals(long.class)){
field.set(obj, StringUtil.parseLong(json.getString(name)));
}else if(field.getType().equals(String.class)){
field.set(obj, json.getString(name));
} else if(field.getType().equals(Double.class) || field.getType().equals(double.class)){
field.set(obj, StringUtil.parseDouble(json.getString(name)));
} else if(field.getType().equals(Integer.class) || field.getType().equals(int.class)){
field.set(obj, StringUtil.parseInt(json.getString(name)));
} else if(field.getType().equals(java.util.Date.class)){
field.set(obj, DateTimeUtil.stringToDate(json.getString(name), "yyyy-MM-dd"));
}else{
continue;
}
}
}
return obj;
}
大功告成,粗略测试,成功。单在有住外键的情况下,还是没有处理。
改天在优化一下这个程序。
个人签名
-------------------------------------
图盾 淘宝保护 保护图片 图片防盗
分享到:
相关推荐
这是本人写的一个基于JSON的完整项目,实现了Java对象、数组、集合转换为Json(Json转化为Java对象、数组、集合)。这是一个完整的项目,下载解压后直接导入MyEclipse/Eclipse中,运行com.demo.JSONDemo类即可看到效果...
主要介绍了Json转化为Java对象的实例详解的相关资料,前后端数据交互的情况经常会遇到Json串与java 对象的相互转换方便操作,需要的朋友可以参考下
net.sf.json.JSONObject ==> Java对象
一个自制的json转换jar 直接调用JsonFactory.toJson()方法可将javaBean转换成json
自己有空时用java反射写的json转化工具,有不完善之处,多包涵
将Json对象转化为Java实体类 请输入要创建的类名:(格式为:*.java) Student.java 请输入json对象: {id : 10, name : '小明', age : 18, score : 88.5, city : '北京', isgood : true} 创建java实体类成功!
创建一个 Gson对象在调用其toJson方法将JAVA对象或集合转换成json字符串 Gson gson = new Gson(); String toJson = gson.toJson(Object o);
JSON与JAVA对象之间的转换 少量数据使用GSON 大量数据使用jackson
java实现http请求,java解析json与java对象转换,项目源代码实例.直接下载源代码可以运行。
可转化JAVA对象(bean,list,map,set)。如果要求返回的JSON对象有严格的要求此包不适用,不推荐下载了。
http://blog.csdn.net/u011001084/article/details/54090425 资源类
json-lib将json格式的字符串,转化为java对象的实例.docx
* 将web Form 的数据转化成json字符串 * 将json对象的值解析后填入web Form 在AJAX开发中这是关键技术: 1、将form中的数据利用本工具转换成json格式的字符串,再通过ajax传给服务器,从而可以实现无刷新的form提交...
json数组和java对象数组、json对象和java对象之间的互相转化。
主要介绍了java实现二维数组转json的方法,涉及java数组遍历及json格式数据构造相关操作技巧,需要的朋友可以参考下
json转换json schema
通过gson.jar, 将java对象转换成json工具类
为了高效地将Json对象转化成Java bean对象,传统上我们是在运行是利用反射来实现
将java对象list或者map转json数据不需要第三方包,直接使用就可以了,如果你传入的数据不确定是map类型还是list类型,那么自己处理一下就可以了(判断下类型,传入参数改为object)。 如果是json数据转成java对象list...