javabean、xml、json、map之间的相互转换

javabean转map

利用cglib的BeanMap类实现转换

import org.springframework.cglib.beans.BeanMap;

/**
 * 
 * @Title: beanToMap
 * @Description: javabean转map
 * @param bean
 * @return
 */
public static  Map beanToMap(T bean) {
    Map 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转换为List>
 * @param beanList
 * @return
 */
public static  List> beanToMapBatch(List beanList) {
    List> beanMapList = new ArrayList<>(16);
    if (beanList != null && beanList.size() > 0) {
        for (T bean : beanList) {
            Map 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 mapToBean(Map 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 mapToBean(Map beanMap, Class beanClass)throws InstantiationException, IllegalAccessException {
    T bean = beanClass.newInstance();
    BeanMap tempMap = BeanMap.create(bean);
    tempMap.putAll(beanMap);
    return bean;
}

/**
 * 
 * @Title: mapToBeanBatch
 * @Description: List>转List
 * @param beanMap
 * @param beanClass
 * @return
 * @throws IllegalAccessException
 * @throws InstantiationException
 */
public static  List mapToBeanBatch(List> beanMap, Class beanClass)
            throws InstantiationException, IllegalAccessException {
    List beanList = new ArrayList<>(16);
    if (beanMap != null && beanMap.size() > 0) {
        for (Map 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 parseXmlToMap(HttpServletRequest request) throws IOException, DocumentException {
    // 将解析的结果存入map集合中
    Map 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 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 xmlToBean(HttpServletRequest request, Class 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;

    ....
}

你可能感兴趣的:(工具类,微信)