javabean、xml、json、map之間的相互轉換,javabeanjson

來源:互聯網
上載者:User

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.