1 @SuppressWarnings({ "deprecation", "unused", "unchecked" }) 2 private Object fromJsonToJava(JSONObject json,Class pojo) throws Exception{ 3 // 首先得到pojo所定义的字段 4 Field [] fields = pojo.getDeclaredFields(); 5 // 根据传入的Class动态生成pojo对象 6 Object obj = pojo.newInstance(); 7 for(Field field: fields){ 8 // 设置字段可访问(必须,否则报错) 9 field.setAccessible(true); 10 // 得到字段的属性名 11 String name = field.getName(); 12 // 这一段的作用是如果字段在JSONObject中不存在会抛出异常,如果出异常,则跳过。 13 try{ 14 json.get(name); 15 }catch(Exception ex){ 16 continue; 17 } 18 if(json.get(name) != null && !"".equals(json.getString(name))){ 19 // 根据字段的类型将值转化为相应的类型,并设置到生成的对象中。 20 if(field.getType().equals(Long.class) || field.getType().equals(long.class)){ 21 field.set(obj, Long.parseLong(json.getString(name))); 22 }else if(field.getType().equals(String.class)){ 23 field.set(obj, json.getString(name)); 24 } else if(field.getType().equals(Double.class) || field.getType().equals(double.class)){ 25 field.set(obj, Double.parseDouble(json.getString(name))); 26 } else if(field.getType().equals(Integer.class) || field.getType().equals(int.class)){ 27 field.set(obj, Integer.parseInt(json.getString(name))); 28 } else if(field.getType().equals(java.util.Date.class)){ 29 field.set(obj, Date.parse(json.getString(name))); 30 }else{ 31 continue; 32 } 33 } 34 } 35 return obj; 36 }