java 实体转map,实体对象转map,Java如何实现实体类转Map、Map转实体类

java 实体转map,实体对象转map,Java如何实现实体类转Map、Map转实体类

这篇文章主要介绍了Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)实现实体类转地图、地图转实体类的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

实体类转Map、Map转实体类

1、创建entity(User.java)

包com。杰夫。实体;

公共类用户{

私有字符串用户名;

私有字符串密码;

私有整数年龄;

公共用户(){

super();

}

公共用户(字符串用户名、字符串密码、整数年龄){

super();

this .用户名=用户名;

this.password=密码;

this.age=年龄;

}

公共字符串getUserName() {

返回用户名;

}

公共void setUserName(字符串用户名){

this .用户名=用户名;

}

公共字符串getPassword() {

返回密码;

}

公共void setPassword(字符串密码){

this.password=密码;

}

公共整数getAge() {

回归年龄;

}

公共空的存储(整数年龄){

this.age=年龄;

}

@覆盖

公共字符串toString() {

返回"用户[用户名='用户名,密码='密码,年龄='年龄']";

}

}

2、创建utils(EntityUtils.java)

包com。杰夫。utils

导入Java。郎。反思。场;

导入Java。util。hashmap

导入Java。util。地图;

公共类EntityUtils {

/**

*

* @描述:实体类转地图

* @作者:杰夫

* @日期:2019年10月29日

* @param对象

* @返回

*/

公共静态映射字符串,对象实体映射(对象对象){

MapString,Object map=new HashMap();

for (Field field : object.getClass().getDeclaredFields()) {

尝试{

布尔标志=字段。可访问();

字段。设置可访问性(true);

对象o=字段。get(对象);

map.put(field.getName(),o);

字段。设置可访问性(标志);

} catch(异常e) {

e。printstacktrace();

}

}

返回地图;

}

/**

*

* @描述:地图转实体类

* @作者:杰夫

* @日期:2019年10月29日

* @param T

* @param map需要初始化的数据,键字段必须与实体类的成员名字一样,否则赋值为空

* @param实体需要转化成的实体类

* @返回

*/

公共静态测试映射实体(映射字符串、对象映射、类实体){

T t=空

尝试{

t=实体。新实例();

for(字段字段:实体。getdeclaredfields()){

如果(图。包含键(字段。getname()){

布尔标志=字段。可访问();

字段。设置可访问性(true);

对象对象=贴图。获取(字段。getname());

如果(反对!=null field.getType().isAssignableFrom(对象。getclass())){

field.set(t,object);

}

字段。设置可访问性(标志);

}

}

return t;

} catch(实例化异常e){

e。printstacktrace();

} catch(IllegalAccessException e){

e。printstacktrace();

}

return t;

}

}

3、创建Map转实体类(TestCopyObj3.java)

包com .杰夫

导入Java。util。hashmap

导入Java。util。地图;

导入com。杰夫。实体。用户;

导入com。杰夫。utils。实体效用;

公共类TestCopyObj3 {

公共静态void main(String[] args)引发异常{

MapString,Object map=new HashMapString,Object();

map.put('用户名','杰夫');

map.put('密码',' 123456 ');

map.put('年龄',18);

System.out.println('Map对象:'地图);

用户用户=实体实用程序。映射到实体(映射,用户。类);

System.out.println('User对象:'用户);

}

}

4、控制台输出结果

5、创建实体类转Map(TestCopyObj4.java)

包com .杰夫

导入Java。util。地图;

导入com。杰夫。实体。用户;

导入com。杰夫。utils。实体效用;

公共类TestCopyObj4 {

公共静态void main(String[] args)引发异常{

用户用户=新用户(‘杰夫’,‘123456’,18);

System.out.println('User对象:'用户);

MapString,Object map=entity utils。要映射的实体(用户);

System.out.println('Map对象:'地图);

}

}

6、控制台输出结果

Map转实体类或List数组

因为做项目,需要取出复杂的地图里的价值转为实体类对象和列表,在博客里找了很久没有找到合适的方法,于是只能默默探索。

地图里包含了实体类,列表数组,还有普通的键值,取出我们想要的数据呢?直接取我是取不出来,后来想先转json,在从json里去出对象和列表,然后就这么干,废话少说,撸代码!

1.先添加maven依赖,这里用alibaba的

!-阿里巴巴json -

属国

groupIdcom.alibaba/groupId

artifactIdfastjson/artifactId

版本1 .2 .46/版本

/依赖关系

2.自己写的一个JsonUtil工具类

导入com。阿里巴巴。快速JSON。JSON

导入com。阿里巴巴。快速JSON。JSON数组;

导入com。阿里巴巴。快速JSON。JSON对象;

导入Java。util。列表;

导入Java。util。地图;

公共类JsonUtilT{

公共静态JSON对象mapToJson(MapString,Object map) {

字符串数据=JSON。tojsonstring(地图);

返回JSON.parseObject(数据);

}

/**

*地图中取键对应的价值

* @param map

* @param key

* @返回

*/

公共字符串mapToString(MapString,对象映射,字符串关键字){

JSON object JSON object=mapToJson(map);

返回JSON对象。getstring(key);

}

/**

*地图中取类对象

* @param map

* @param clazz

* @param key

* @param T

* @返回

*/

public static T T mapToObject(MapString,Object map,clazz,String key) {

T t=空

JSON object JSON object=mapToJson(map);

JSON对象object=JSON对象。getjson对象(key);

t=对象。tojavaobject(clazz);

return t;

}

/**

*地图中取目录

* @param map

* @param clazz

* @param key

* @返回

*/

public ListT mapToList(映射字符串,对象映射,分类,字符串关键字){

ListT t=null

JSON object JSON object=mapToJson(map);

JSON数组array=JSON对象。getjson数组(key);

t=数组。tojavalist(clazz);

return t;

}

}

3.用 postman 发送数据到后台

4.后台接收代码

@ request mapping(value='/subjects/subject ',method={RequestMethod .帖子})

公共结果添加主题(@请求正文映射字符串,对象映射){

//使用json

JSON util JSON util=new JSON util();

//获取科目对象

主题subject=JSON util。maptooobject(map,Subject.class,' subject ');

//获取目录数组

列表进度进度列表=JSON util。mapto列表(map,Progress.class,' progress ');

//获取键对应的值

string specid=JSON util。maptostring(map,' specid ');

//打印输出

系统。出去。println(主题);

对于(进度进度:进度列表){

系统。出去。println(进度);

}

系统。出去。println(specid);

返回空

}

5.后台输出

到此成功从地图里取出对象,列表,和键值

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: