javabean、xml、json、map之間的相互轉換,javabeanjson
javabean轉map
利用cglib的BeanMap類實現轉換
import org.springframework.cglib.beans.BeanMap;/** * * @Title: beanToMap * @Description: javabean轉map * @param bean * @return */public static <T> Map<String, Object> beanToMap(T bean) { Map<String, Object> beanMap = new HashMap<>(16); if (bean != null) { BeanMap tempMap = BeanMap.create(bean); for (Object key : tempMap.keySet()) { String putKey = String.valueOf(key); Object putValue = tempMap.get(key); beanMap.put(putKey, putValue); } } return beanMap;}/** * * @Title: beanListToMapList * @Description: List<T>轉換為List<Map<String,Object>> * @param beanList * @return */public static <T> List<Map<String, Object>> beanToMapBatch(List<T> beanList) { List<Map<String, Object>> beanMapList = new ArrayList<>(16); if (beanList != null && beanList.size() > 0) { for (T bean : beanList) { Map<String, Object> beanMap = beanToMap(bean); beanMapList.add(beanMap); } } return beanMapList;}
map轉javabean
利用cglib的BeanMap類實現轉換
import org.springframework.cglib.beans.BeanMap;/** * * @Title: mapToBean * @Description: map轉javabean * @param beanMap * @param bean * @return */public static <T> T mapToBean(Map<String, Object> beanMap, T bean) { BeanMap tempMap = BeanMap.create(bean); tempMap.putAll(beanMap); return bean;}/** * * @Title: mapToBean * @Description: map轉javabean * @param beanMap * @param beanClass * @return * @throws InstantiationException * @throws IllegalAccessException */public static <T> T mapToBean(Map<String, Object> beanMap, Class<T> beanClass)throws InstantiationException, IllegalAccessException { T bean = beanClass.newInstance(); BeanMap tempMap = BeanMap.create(bean); tempMap.putAll(beanMap); return bean;}/** * * @Title: mapToBeanBatch * @Description: List<Map<String,Object>>轉List<T> * @param beanMap * @param beanClass * @return * @throws IllegalAccessException * @throws InstantiationException */public static <T> List<T> mapToBeanBatch(List<Map<String, Object>> beanMap, Class<T> beanClass) throws InstantiationException, IllegalAccessException { List<T> beanList = new ArrayList<>(16); if (beanMap != null && beanMap.size() > 0) { for (Map<String, Object> tempMap : beanMap) { T bean = mapToBean(tempMap, beanClass); beanList.add(bean); } } return beanList;}
xml轉map
使用dom4j
/** * * @Title: parseXmlToMap * @Description: 解析xml,並返回map * @return * @throws IOException * @throws DocumentException */public static Map<String, Object> parseXmlToMap(HttpServletRequest request) throws IOException, DocumentException { // 將解析的結果存入map集合中 Map<String, Object> map = new HashMap<>(16); // 從request中擷取流 InputStream inputStream = request.getInputStream(); // 使用dom4j讀取輸入資料流 SAXReader reader = new SAXReader(); Document document = reader.read(inputStream); // 得到xml根項目 Element root = document.getRootElement(); // 得到根項目的所有子節點 List<Element> elementList = root.elements(); // 迭代 for (Element e : elementList) { map.put(e.getName(), e.getText()); } inputStream.close(); inputStream = null; return map;}
xml轉bean
使用jackson
/** * * @Title: xmlToBean * @Description: xml轉換成bean * @param request * @param beanClass * @return * @throws IOException */public static <T> T xmlToBean(HttpServletRequest request, Class<T> beanClass) throws IOException { // 擷取輸入資料流 InputStream inputStream = request.getInputStream(); XmlMapper xmlMapper = new XmlMapper(); T bean = xmlMapper.readValue(inputStream, beanClass); inputStream.close(); inputStream = null; return bean;}jackson相關註解@JacksonXmlRootElement(localName = "xml")public class TextMessage implements Serializable { /** * 序列化 */ private static final long serialVersionUID = 2501424341457570501L; /** * 開發人員號 */ @JacksonXmlProperty(localName = "ToUserName") @JacksonXmlCData(value = true) private String ToUserName; ....}
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。 //blog.csdn.net/qq_28988969/article/details/78842914