1 classJavabean1{2 privateString data1;3 privateString data2;4 privateString data3;5 //...
6 }7 classJavabean2{8 privateString data1;9 privateString data2;10 privateString data3;11 //...
12 }13
14 classclassAll{15 privateJavabean1 bean1;16 private Listlistbean2;17 //...
18 }19
20 /**
21 * Map集合对象转化成 JavaBean集合对象22 * classAll有两个属性:1 Javabean1实体类,2 List 实体类的集合23 *@paramjavaBean24 * JavaBean实例对象25 *@parammapList26 * Map数据集对象27 *@return
28 *29 */
30 public static ListlistmapUS(Javabean1 javaBean,31 List>mapList) {32 if (mapList == null ||mapList.isEmpty()) {33 return null;34 }35 List objectList = new ArrayList();36 Javabean1 object = null;37 for(Map map : mapList) {38 classAll infoCargo=newclassAll();39 if (map != null) {40 object =mapBeanUS(javaBean, map);41 infoCargo.SetJavabean1(object);42 if(map.containsKey("omsPickupCargo")){43 //这个map的key值是json的字符串,需要改,不要的话删掉就好
44 infoCargo.setJavabean2(JSONArray.toList(JSONArray.fromObject(map.get("omsPickupCargo")), new OmsPickupCargo(), newJsonConfig()));45 }46 objectList.add(infoCargo);47 }48 }49 returnobjectList;50 }51 /**
52 * Map对象转化成 JavaBean对象53 *54 *@paramjavaBean55 * JavaBean实例对象56 *@parammap57 * Map对象58 *@return
59 *60 */
61 public static Javabean1 mapBeanUS(Javabean1 javaBean, Mapmap) {62 try{63 //获取javaBean属性
64 BeanInfo beanInfo =Introspector.getBeanInfo(javaBean.getClass());65 //创建 JavaBean 对象
66 Javabean1 obj =(Javabean1) javaBean.getClass().newInstance();67 PropertyDescriptor[] propertyDescriptors =beanInfo.getPropertyDescriptors();68 if (propertyDescriptors != null && propertyDescriptors.length > 0) {69 String propertyName = null; //javaBean属性名
70 Object propertyType = null;71 for(PropertyDescriptor pd : propertyDescriptors) {72 propertyName =pd.getName();73 propertyType =pd.getPropertyType();74 if(map.containsKey(propertyName)) {75 if(StringUtils.isEmpty(map.get(propertyName))){76 continue;77 }78 pd.getWriteMethod().invoke(obj, newObject[] { endWitch(propertyType, map.get(propertyName)) });79 }80 }81 returnobj;82 }83 } catch(Exception e) {84 e.printStackTrace();85 }86 return null;87 }88 /**
89 * 按实体类属性数据类型把String类型转换对应的类型90 *@paramobject object属性类型91 *@paramvalue value要转换的值92 *@return
93 *94 */
95 public staticObject endWitch(Object object, String value) {96 if ("".equals(object.toString())|| null ==object.toString()) {97 return null;98 }99 if ("".equals(value) || null ==value) {100 return null;101 }102 if (object.toString().endsWith("Long")) {103 returnLong.parseLong(value);104 }105 if (object.toString().endsWith("Integer")) {106 returnInteger.parseInt(value);107 }108 if (object.toString().endsWith("Double")) {109 returnDouble.parseDouble(value);110 }111 if (object.toString().endsWith("Float")) {112 returnFloat.parseFloat(value);113 }114 if (object.toString().endsWith("Date")) {115 //vaue为毫秒数需要转date格式,可以根据你的需要修改
116 SimpleDateFormat format = newSimpleDateFormat();117 String d =format.format(Long.parseLong(value));118 try{119 Date date =format.parse(d);120 returndate;121 } catch(ParseException e) {122 e.printStackTrace();123 }124 }125 returnvalue;126 }