JSONObject转换为java对象

前端之家收集整理的这篇文章主要介绍了JSONObject转换为java对象前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

@H_403_2@ JSONObject 转换为java对象的步骤:
@H_403_2@ * 1.获取指定POJO多定义的字段
@H_403_2@ * 2.根据转入的Class动态生成POJO对象
@H_403_2@ * 3.设置字段可访问状态(必须设置,否则报错)
@H_403_2@ * 4.获取POJO字段的属性
@H_403_2@ * 5.根据POJO字段的属性获取JSON数据
@H_403_2@ * 6.根据字段的类型将值转化为相应的类型,并设置到生成的对象中
@H_403_2@ 代码如下: @H_403_2@ private static Object fromJsonObjectToBean(JSONObject json,Class pojo) throws Exception{ @H_403_2@ // 首先得到pojo所定义的字段 @H_403_2@ Field [] fields = pojo.getDeclaredFields(); @H_403_2@ // 根据传入的Class动态生成pojo对象 @H_403_2@ Object obj = pojo.newInstance(); @H_403_2@ for(Field field: fields){ @H_403_2@ // 设置字段可访问(必须,否则报错) @H_403_2@ field.setAccessible(true); @H_403_2@ // 得到字段的属性 @H_403_2@ String name = field.getName(); @H_403_2@ // 这一段的作用是如果字段在JSONObject中不存在会抛出异常,如果出异常,则跳过。 @H_403_2@ try{ @H_403_2@ json.get(name); @H_403_2@ }catch(Exception ex){ @H_403_2@ continue; @H_403_2@ } @H_403_2@ if(json.get(name) != null && !"".equals(json.getString(name))){ @H_403_2@ // 根据字段的类型将值转化为相应的类型,并设置到生成的对象中。 @H_403_2@ if(field.getType().equals(Long.class) || field.getType().equals(long.class)){ @H_403_2@ field.set(obj,Long.parseLong(json.getString(name))); @H_403_2@ }else if(field.getType().equals(String.class)){ @H_403_2@ field.set(obj,json.getString(name)); @H_403_2@ } else if(field.getType().equals(Double.class) || field.getType().equals(double.class)){ @H_403_2@ field.set(obj,Double.parseDouble(json.getString(name))); @H_403_2@ } else if(field.getType().equals(Integer.class) || field.getType().equals(int.class)){ @H_403_2@ field.set(obj,Integer.parseInt(json.getString(name))); @H_403_2@ } else if(field.getType().equals(java.util.Date.class)){ @H_403_2@ field.set(obj,Date.parse(json.getString(name))); @H_403_2@ }else{ @H_403_2@ continue; @H_403_2@ } @H_403_2@ } @H_403_2@ } @H_403_2@ return obj; @H_403_2@ }

猜你在找的Json相关文章