package com.audaque.collection.app.action; import com.audaque.collection.app.model.FormDataVo; import com.audaque.collection.app.model.FormVo; import com.audaque.collection.app.model.ResPopulationPretankd; import com.audaque.collection.app.model.childrenInfo; import com.audaque.collection.common.model.FormData; import com.fasterxml.jackson.databind.ObjectMapper; import java.io.IOException; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.HashMap; import java.util.Map; public class Test { public static void main(String[] args) throws IOException { ObjectMapper objectMapper =new ObjectMapper(); String s="[{\"formId\":2757,\"attributeName\":\"name\",\"content\":\"bbxb\",\"title\":\"姓名\"},{\"formId\":2761,\"attributeName\":\"sex\",\"content\":\"女\",\"title\":\"性别\"},{\"formId\":2763,\"attributeName\":\"populationType\",\"content\":\"户籍人口\",\"title\":\"人员类型\"},{\"formId\":2767,\"attributeName\":\"idCardType\",\"content\":\"回乡证\",\"title\":\"证件类型\"},{\"formId\":2769,\"attributeName\":\"idNumber\",\"content\":\"bbxnn\",\"title\":\"证件号\"},{\"formId\":2771,\"attributeName\":\"nation\",\"content\":\"苗族\",\"title\":\"民族\"},{\"formId\":2773,\"attributeName\":\"contact\",\"content\":\"nnxnxn\",\"title\":\"联系电话\"},{\"formId\":2791,\"attributeName\":\"birth\",\"content\":\"2019-12-31\",\"title\":\"出生日期\"},{\"formId\":2801,\"attributeName\":\"communityPathAlley\",\"content\":\"nnxnxn\",\"title\":\"街镇/社区\"},{\"formId\":2803,\"attributeName\":\"communityPathAlley\",\"content\":\"bbdhh\",\"title\":\"街路巷\"},{\"formId\":2805,\"attributeName\":\"resHousebuildPretankd\",\"content\":\"ghd\",\"title\":\"房屋栋\"},{\"formId\":2807,\"attributeName\":\"resHousePretankd\",\"content\":\"ghs5\",\"title\":\"房屋套\"},{\"formId\":2809,\"attributeName\":\"address\",\"content\":\"vbdb\",\"title\":\"现居住地址\"},{\"formId\":2909,\"attributeName\":\"retinueName\",\"content\":\"[{\\\"name\\\":\\\"香港\\\",\\\"crad\\\":\\\"431124\\\",\\\"sex\\\":\\\"男\\\",\\\"relationship\\\":\\\"同学\\\",\\\"birthDate\\\":\\\"2012-12-2\\\",\\\"type\\\":\\\"2\\\",\\\"schoolName\\\":\\\"情况\\\",\\\"hospital\\\":\\\"\\\"}]\",\"title\":\"随行人员\"}]"; FormVo[] data =objectMapper.readValue(s, FormVo[].class); Map<String,Object> map=new HashMap<>(); for (int i=0;i<data.length;i++){ if (data[i].getAttributeName()!=null){ map.put(data[i].getAttributeName(),data[i].getContent()); } /* if (data[i].getFormId()==2909){ System.out.println(data[i].getContent()); childrenInfo[] childrenInfos =objectMapper.readValue(s, childrenInfo[].class); for (childrenInfo childrenInfo:childrenInfos){ System.out.println(childrenInfo.getName()); } }*/ } ResPopulationPretankd populationPretankd =new ResPopulationPretankd(); populationPretankd= (ResPopulationPretankd)map2Object(map,populationPretankd.getClass()); System.out.println(populationPretankd.getName()); Map<String,Object> map1=new HashMap<>(); map1= object2Map(populationPretankd); System.out.println(map1.get("name")); } /** * 实体对象转成Map * * @param obj * @return */ public static Map<String, Object> object2Map(Object obj) { Map<String, Object> map = new HashMap<>(); if(obj == null){ return map; } Class clazz = obj.getClass(); Field[] fields = clazz.getDeclaredFields(); try{ for(Field field:fields){ field.setAccessible(true); map.put(field.getName(), field.get(obj)); } }catch(Exception e){ e.printStackTrace(); } return map; } public static Object map2Object(Map<String, Object> map, Class<?> clazz){ if(map == null){ return null; } Object obj = null; try { obj = clazz.newInstance(); Field[] fields = obj.getClass().getDeclaredFields(); for(Field field:fields){ int mod = field.getModifiers(); if(Modifier.isStatic(mod)||Modifier.isFinal(mod)){ continue; } field.setAccessible(true); field.set(obj, map.get(field.getName())); } } catch (Exception e) { e.printStackTrace(); } return obj; } }
public class FormVo implements Serializable { private static final long serialVersionUID = 1L; private int formId; private String attributeName; private String content; private String title; public int getFormId() { return formId; } public void setFormId(int formId) { this.formId = formId; } public String getAttributeName() { return attributeName; } public void setAttributeName(String attributeName) { this.attributeName = attributeName; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } }
}