广告
返回顶部
首页 > 资讯 > 精选 >Java怎么实现实体类转Map、Map转实体类
  • 257
分享到

Java怎么实现实体类转Map、Map转实体类

2023-06-20 21:06:44 257人浏览 泡泡鱼
摘要

这篇文章给大家分享的是有关Java怎么实现实体类转Map、Map转实体类的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。实体类转Map、Map转实体类1、创建entity(User.java)package&nbs

这篇文章给大家分享的是有关Java怎么实现实体类转Map、Map转实体类的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

实体类转Map、Map转实体类

1、创建entity(User.java)

package com.jeff.entity;public class User { private String userName; private String passWord; private Integer age; public User() {  super(); } public User(String userName, String password, Integer age) {  super();  this.userName = userName;  this.password = password;  this.age = age; } public String getUserName() {  return userName; } public void setUserName(String userName) {  this.userName = userName; } public String getPassword() {  return password; } public void setPassword(String password) {  this.password = password; } public Integer getAge() {  return age; } public void setAge(Integer age) {  this.age = age; } @Override public String toString() {  return "User [userName=" + userName + ", password=" + password + ", age=" + age + "]"; }}

2、创建utils(EntityUtils.java)

package com.jeff.utils;import java.lang.reflect.Field;import java.util.HashMap;import java.util.Map;public class EntityUtils {  public static Map<String, Object> entityToMap(Object object) {  Map<String, Object> map = new HashMap<>();  for (Field field : object.getClass().getDeclaredFields()) {   try {    boolean flag = field.isAccessible();    field.setAccessible(true);    Object o = field.get(object);    map.put(field.getName(), o);    field.setAccessible(flag);   } catch (Exception e) {    e.printStackTrace();   }  }  return map; }  public static <T> T mapToEntity(Map<String, Object> map, Class<T> entity) {  T t = null;  try {   t = entity.newInstance();   for (Field field : entity.getDeclaredFields()) {    if (map.containsKey(field.getName())) {     boolean flag = field.isAccessible();     field.setAccessible(true);     Object object = map.get(field.getName());     if (object != null && field.getType().isAssignableFrom(object.getClass())) {      field.set(t, object);     }     field.setAccessible(flag);    }   }   return t;  } catch (InstantiationException e) {   e.printStackTrace();  } catch (IllegalAccessException e) {   e.printStackTrace();  }  return t; }}

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

package com.jeff;import java.util.HashMap;import java.util.Map;import com.jeff.entity.User;import com.jeff.utils.EntityUtils;public class TestCopyObj3 { public static void main(String[] args) throws Exception {  Map<String, Object> map = new HashMap<String, Object>();  map.put("userName", "Jeff");  map.put("password", "123456");  map.put("age", 18);  System.out.println("Map对象:" + map);  User user = EntityUtils.mapToEntity(map, User.class);  System.out.println("User对象:" + user); }}

4、控制台输出结果

Java怎么实现实体类转Map、Map转实体类

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

package com.jeff;import java.util.Map;import com.jeff.entity.User;import com.jeff.utils.EntityUtils;public class TestCopyObj4 {public static void main(String[] args) throws Exception {User user = new User("Jeff", "123456", 18);System.out.println("User对象:" + user);Map<String, Object> map = EntityUtils.entityToMap(user);System.out.println("Map对象:" + map);}}

6、控制台输出结果

Java怎么实现实体类转Map、Map转实体类

Map转实体类或List数组

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

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

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

<!--alibaba json  --><dependency>    <groupId>com.alibaba</groupId>    <artifactId>fastjson</artifactId>    <version>1.2.46</version></dependency>

2.自己写的一个JsonUtil工具

import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;import java.util.List;import java.util.Map;public class JsonUtil<T>{        public static JSONObject mapToJson(Map<String, Object> map) {        String data = JSON.toJSONString(map);        return JSON.parseObject(data);    }        public String mapToString(Map<String, Object> map, String key) {        JSONObject jsonObject = mapToJson(map);        return jsonObject.getString(key);    }        public static <T> T mapToObject(Map<String, Object> map, Class<T> clazz, String key) {        T t = null;        JSONObject jsonObject = mapToJson(map);        JSONObject object = jsonObject.getJSONObject(key);        t = object.toJavaObject(clazz);        return t;    }        public  List<T> mapToList(Map<String, Object> map, Class<T> clazz, String key) {        List<T> t = null;        JSONObject jsonObject = mapToJson(map);        JSONArray array = jsonObject.getJSONArray(key);        t = array.toJavaList(clazz);        return t;    }}

3.用 postman 发送数据到后台

Java怎么实现实体类转Map、Map转实体类

4.后台接收代码

@RequestMapping(value = "/subjects/subject", method = {RequestMethod.POST})    public Result addSubject(@RequestBody Map<String, Object> map) {        //使用json        JsonUtil jsonUtil = new JsonUtil();        //获取Subject对象        Subject subject = jsonUtil.mapToObject(map, Subject.class, "subject");        //获取List数组        List<Progress> progressList = jsonUtil.mapToList(map, Progress.class, "progress");        //获取key对应的值        String specid = jsonUtil.mapToString(map, "specid");        //打印输出        System.out.println(subject);        for(Progress progress : progressList) {            System.out.println(progress);        }        System.out.println(specid);        return null;    }

感谢各位的阅读!关于“Java怎么实现实体类转Map、Map转实体类”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: Java怎么实现实体类转Map、Map转实体类

本文链接: https://www.lsjlt.com/news/300181.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作