Java 对象转Map,Java Map转对象方法

Java 对象转Map,Java Map转对象方法代码语言:javascript代码运行次数:0运行复制import com.alibaba.fastjson.JSON;import org.apachemons.beanutils.Be

Java 对象转Map,Java Map转对象方法

Java 对象转Map,Java Map转对象方法

代码语言:javascript代码运行次数:0运行复制
import com.alibaba.fastjson.JSON;
import org.apachemons.beanutils.BeanMap;
import org.apachemons.beanutils.BeanUtils;

import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.util.HashMap;
import java.util.Map;

public class UserInfo {
    private String userName;
    private String idNo;
    private String mobile;
    private String sign;

    public String getSign() {
        return sign;
    }

    public void setSign(String sign) {
        this.sign = sign;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getIdNo() {
        return idNo;
    }

    public void setIdNo(String idNo) {
        this.idNo = idNo;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    private static Map<String, String> objectToMap(Object object) {
        Map<String,String> map = new HashMap<>();
        Field[] fields = object.getClass().getDeclaredFields();
        for (Field field : fields) {
            try {
                field.setAccessible(true);
                map.put(field.getName(), String.valueOf(field.get(object)));
            }catch (Exception e) {
                e.printStackTrace();
            }
        }
        return map;
    }

    public static void mapToObject(Map<String, Object> map, Object obj) throws Exception {
        if (map == null) {
            return;
        }
        Class<?> cls = obj.getClass();
        for (Field field : cls.getDeclaredFields()) {
            String name = field.getName();
            Object value = map.get(name);
            if (value != null) {
                field.setAccessible(true);
                field.set(obj, value);
            }
        }
    }

    public static void main(String[] args) {
        UserInfo userInfo = new UserInfo();
        userInfo.setMobile("19966667777");
        userInfo.setUserName("张三");
        userInfo.setIdNo("463300122545556699");
        //对象转map1={mobile=19966667777, sign=null, userName=张三, idNo=463300122545556699}
        Map map1 = objectToMap(userInfo);
        System.out.println("对象转map1=" + map1);

        UserInfo user1 = new UserInfo();
        try {
            mapToObject(map1,user1);
        } catch (Exception e) {
            e.printStackTrace();
        }
        //map1转对象={"idNo":"463300122545556699","mobile":"19966667777","sign":"null","userName":"张三"}
        System.out.println("map1转对象=" + JSON.toJSONString(user1));


        String json = JSON.toJSONString(userInfo);
        Map map2 = JSON.parseObject(json,Map.class);
        //对象转map2={mobile=19966667777, userName=张三, idNo=463300122545556699}
        System.out.println("对象转map2=" + map2);

        String json2 = JSON.toJSONString(map2);
        UserInfo user2 = JSON.parseObject(json2,UserInfo.class);
        //map2转对象={"idNo":"463300122545556699","mobile":"19966667777","userName":"张三"}
        System.out.println("map2转对象=" + JSON.toJSONString(user2));

        Map<String, String> map3 = null;
        try {
            map3 = BeanUtils.describe(userInfo);
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        }
        //对象转map3={mobile=19966667777, sign=null, userName=张三, class=class com.example.core.mydemo.scooter.UserInfo, idNo=463300122545556699}
        System.out.println("对象转map3=" + map3);

//        Map map4 = new HashMap();
//        BeanMap map4 = new BeanMap(userInfo);
        UserInfo testObj = new UserInfo();
        try {
            BeanUtils.populate(testObj,map3);
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }
        //map3转对象={"mobile":"19966667777","userName":"张三","idNo":"463300122545556699"}
        System.out.println("map3转对象=" + JSON.toJSON(testObj));

    }
}

需要引入的jar包文件:

代码语言:javascript代码运行次数:0运行复制
<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.62</version>
        </dependency>
		<dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
            <version>1.9.1</version>
        </dependency>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2023-09-25,如有侵权请联系 cloudcommunity@tencent 删除string对象javamapmobile

发布者:admin,转转请注明出处:http://www.yc00.com/web/1754976017a5223552.html

相关推荐

  • Java 对象转Map,Java Map转对象方法

    Java 对象转Map,Java Map转对象方法代码语言:javascript代码运行次数:0运行复制import com.alibaba.fastjson.JSON;import org.apachemons.beanutils.Be

    1月前
    210

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信