首页 > 编程语言 >javabean、xml、json、map之间的相互转换

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

时间:2022-10-11 17:09:49浏览次数:94  
标签:xml map List bean param json beanMap BeanMap


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

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
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
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

xml转map

使用dom4j

/**
*
* @Title: parseXmlToMap
* @Description: 解析xml,并返回map
* @return
* @throws IOException
* @throws
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

xml转bean

使用jackson

/**
*
* @Title: xmlToBean
* @Description: xml转换成bean
* @param request
* @param beanClass
* @return
* @throws
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


标签:xml,map,List,bean,param,json,beanMap,BeanMap
From: https://blog.51cto.com/u_15824687/5747134

相关文章

  • Mybatis通用Mapper(springboot环境下使用)
    ​​mapper3通用接口大全​​​:​​https://gitee.com/free/Mapper.git​​1、添加pom文件依赖<!--mapper--><dependency><groupId>tk.mybatis</groupId><artifact......
  • ConcurrentHashMap底层原理
    5.6ConcurrentHashMap底层原理5.6.1jdk1.75.6.1.1数组结构数据结构是数组+segment对象,采用segment分段锁和CAS保证并发。5.6.1.2put操作流程/***Co......
  • nlohmann / json 使用
       下载地址   https://github.com/nlohmann/json/tree/develop/single_include/nlohmann/json.hpp  引入工程  json.hpp是源文件包含了所有的函数,引入......
  • NETCORE中如何操作Appsettings.json 文件
    对于很多初学NETCORE的同学来说,怎么从appsettings.json文件中获取各种类型数据,一直没搞明白。今天我们就对它的几种数据格式的读取做个说明。appsettings.json 是我们......
  • maven 项目 maven setting.xml 配置 maven 项目 初始 办的一些事,以及一些采坑记录
    目录​​1.介绍​​​​2.下载地址​​​​2.1放到本地一个位置,解压​​​​2.2配置eclipse配置 ​​​​3.setting.xml配置​​​​3.1本地lib包等jar放到哪里​​​​......
  • php中array_filter()、array_map()、array_walk()三者的用法和区别
    array_filter()重点在于过滤(而不是新增)某个元素,当你处理到一个元素时,返回过滤后的数组 array_map()重点在于遍历一个数组或多个数组的元素,返回一个新的数组 array_walk()......
  • workerman/gatewayworker使用protobuffer和json的对比
    作者回答“在websocket上传输json更通用一些,调试也更方便一些。”“快0.00001秒没有什么太大意义。另外最好压测下php的json和protobuffer到底哪个快,php下还真不一定prot......
  • Nmap安装
     Nmap(NetworkMapper,网络映射器)是一款开放源代码的网络探测和安全审核工具。它被设计用来快速扫描大型网络,包括主机探测与发现、开放的端口情况、操作系统与应用服务指纹......
  • 接口返回JSON字符串压缩和解压
    usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.IO;usingSystem.IO.Compression;namespaceCSIBrowser.Client.Util{......
  • Idea-->Maven-->Mybatis-->pom.xml配置
    <!--依赖列表--><dependencies><!--MyBatis依赖--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</......