List<dto> 转List<map>
/**
* list<DTO> 转 list<Map<String,Object>>
*
* @param list
* @param <T>
* @return
*/
public static <T> List<Map<String, Object>> listConvert(List<T> list) {
List<Map<String, Object>> list_map = new ArrayList<Map<String, Object>>(); // 定义List<Map<String, Object>>数组<br> // list为外部传进来的list集合
if (CollectionUtils.isNotEmpty(list)) {
list.forEach(item ->{// PropertyUtils.describe(Object)转换
Map<String, Object> map = null;
try {
map = (Map<String, Object>) PropertyUtils.describe(item);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
list_map.add(map ); });
}
return list_map;
}
list<map> 转 list<dto> 使用使用alibaba json
引入依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.37</version>
</dependency>
List<Map<String,Object>> = new ArrayList<>; List<InventoryNeedWeiDto> needDtos = JSON.parseArray(JSON.toJSONString(list), InventoryNeedWeiDto.class);
list对象 转另一个list对象
<dependency>
<groupId>ma.glasnost.orika</groupId>
<artifactId>orika-core</artifactId>
</dependency>
package com.liby.inventory.common.utils; import ma.glasnost.orika.MapperFacade;
import ma.glasnost.orika.MapperFactory;
import ma.glasnost.orika.impl.DefaultMapperFactory;
import ma.glasnost.orika.metadata.Type;
import java.util.List;
public abstract class BeanMapperUtils { private static MapperFactory mapperFactory = new DefaultMapperFactory.Builder().build(); public static <S,D> D map(S source,Class<D> clazz){
MapperFacade mapper = mapperFactory.getMapperFacade();
return mapper.map(source, clazz);
} public static <S,D> void map(S source,D d){
MapperFacade mapper = mapperFactory.getMapperFacade();
mapper.map(source,d);
} public static <S, D> D map(S s, Type<S> sType, Type<D> dType){
MapperFacade mapper = mapperFactory.getMapperFacade();
return mapper.map(s, sType, dType);
} public static <S,D> List<D> mapAsList(List<S> source, Class<D> clazz){
MapperFacade mapper = mapperFactory.getMapperFacade();
return mapper.mapAsList(source, clazz);
} }
BeanMapperUtils.mapAsList(S source,Class clazz);
source: 源对象 D:目标对象
对象转另一个对象
BeanMapperUtils.map(S source,Class clazz) source: 源对象 D:目标对象
List<dto> 转List<map>的更多相关文章
- 构建自己的PHP框架--实现Model类(1)
在之前的博客中,我们定义了ORM的接口,以及决定了使用PDO去实现.最后我们提到会有一个Model类实现ModelInterface接口. 现在我们来实现这个接口,如下: <?php names ...
- 10、ASP.NET MVC入门到精通——Model(模型)和验证
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 模型就是处理业务,想要保存.创建.更新.删除的对象. 注解(通过特性实现) DisplayName Required StringLengt ...
- Asp.Net MVC<七>:Model
Model 指ViewModel ,其作用: 用于目标Action的参数绑定 用于View呈现 Model元数据则是对ViewModel数据类型的描述,其作用在于控制作为Model的数据对象在View ...
- 提高生产性工具 - Model代码生成器(NET / JAVA) (一)
原来在上一家公司,整整一年都在做工具,提高生产性,那个项目特别巨大,所以总共为老东家节约了500K左右的美金. (除了表扬之外,我个人什么好处都没有,领导们都升官发财了,郁闷) 到了新公司,也准备开发 ...
- List<T>与Dictionary<string,T>频繁检索的性能差距
一直对LINQ简洁高效的语法青睐有加,对于经常和资料库,SQL语法打交道的C#开发者来说,LINQ无疑是一个非常不错的选择,当要在List<T>(T为一个普通对象)集合中查找满足某些条件的 ...
- 领域对象模型(domain object model)
在Play程序中,模型(model)占据了核心地位.它是程序操作的信息的特定领域的表现方式. Martin Fowler这样定义模型: 负责表达业务概念,业务状态信息以及业务规则.尽管保存业务状态的技 ...
- ASP.NET MVC 学习7、为Model Class的字段添加验证属性(validation attribuate)
Adding Validation to the Model ,在Model中添加数据验证 参考:http://www.asp.net/mvc/tutorials/mvc-4/getting-star ...
- 懒人小工具:自动生成Model,Insert,Select,Delete以及导出Excel的方法
在开发的过程中,我们为了节约时间,往往会将大量重复机械的代码封装,考虑代码的复用性,这样我们可以节约很多时间来做别的事情.最近跳槽到一节webform开发的公司,主要是开发自己公司用的ERP.开始因为 ...
- JFinal极速开发框架使用笔记(三) 分析Model和ActiveRecord
JFinal框架的一些新发现的用法: 在JFinal框架中,实体类并不需要设置属性,更不需要配置getset方法就可以很方便的操作数据库,如果需要设置或者获取属性,可以直接使用一下方式: User u ...
- SpringMVC归纳-1(model数据模型与重定向传参技术)
要点: model是一个Map结构的数据模型,能重定向时传递数据(拼接URL),但不安全,主要用于渲染前端页面,配合Thymeleaf填充html里面里设置好的参数. @RequestParam用来获 ...
随机推荐
- 【ZYNQ学习】如何使用ZYNQ
本篇博客建立一套ZYNQ系统开发的一般方法和流程,并对ZYNQ的硬件和软件的设计流程进行概述 设计工具: vivado IDE:创建SoC设计中的硬件系统部分,同时和设计套件中的其他工具有交互,包含集 ...
- Path类,文件操作的路径用法
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Tex ...
- 时间序列 data_range()
pd.date_range( start=None,#开始时间 end=None,#截止时间 periods=None,#总长度 freq=None,#时间间隔 tz=None,#时区 normali ...
- Linux 看进程的线程数
pstree -p 12345|wc -l 看进程的线程数 centos7默认并没有安装pstree,所以会有pstree:command not found 安装一下 yum install psm ...
- windows 系统的端口问题
netstat -ano 列出所有正在使用的端口netstat -aon|findstr "4300" 查询占用该端口的PIDtasklist|findstr "4464 ...
- mysql5.7主从多线程同步
数据库复制的主要性能问题就是数据延时 为了优化复制性能,Mysql 5.6 引入了 "多线程复制" 这个新功能 但 5.6 中的每个线程只能处理一个数据库,所以如果只有一个数据库, ...
- ubuntu18.04.3新装系统安装QT5.14.1和环境配置
第一步:下载QT: http://download.qt.io/archive/qt/ 或者 https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt/ 下 ...
- 如何保证RabbitMQ的消息不会丢失?怎么保证RabbitMQ的可靠性?
生产者: 原因: 由于网络原因导致消息发送失败,消息队列没有接收到生产者发送的消息,但生产者认为消息发送成功. 解决办法: transaction模式:事务模式:开启事务,发送消息,成功提交事务,失败 ...
- ES7-ES12总结篇
脑图模式 插入 ES7-ES12 ES7 Array.prototype.includes() includes() 方法用来判断一个数组是否包含一个指定的值,如果包含则 ...
- 【摘】python和它的内置类型子类化
python和它的内置类型子类化 看个好玩的东西 class Folder(list): def __init__(self, name): self.name = name def dir(self ...