JAVA中将对象转为Map类型
之前讲过将Map转为JAVA对象的文章,那么问题来了,如果要把JAVA对象转为Map,又该怎么操作呢?
这里亲测了2个方法可行,但目前这2个方法都是基于简单JAVA Bean的情况(即Bean中不能嵌套非基本类型的对象)。
1.通过Introspector来实现
public static Map<String, Object> objectToMap1(Object obj) {
if (obj == null) {
return null;
}
Map<String, Object> map = new HashMap<String, Object>();
try {
BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
for (PropertyDescriptor property : propertyDescriptors) {
String key = property.getName();
if (key.compareToIgnoreCase("class") == 0) {
continue;
}
Method getter = property.getReadMethod();
Object value = getter != null ? getter.invoke(obj) : null;
map.put(key, value);
}
} catch (Exception e) {
e.printStackTrace();
}
return map;
}
2.通过com.alibaba.fastjson.JSON来实现
@SuppressWarnings("unchecked")
public static Map<String, Object> objectToMap2(Object obj) {
return JSON.parseObject(JSON.toJSONString(obj), Map.class);
}
以下是测试过程:
public static void main(String[] args) {
SingleWithdrawCallBackMessage message = new SingleWithdrawCallBackMessage();
message.setAcqSerialNo(2017080100000999L);
message.setBankNo("111111111111112");
message.setErrorMessage("");
message.setFundPayNo("1111111111111112");
message.setOrderTime("2017-08-01 12:00:00");
message.setOutOrderNo("2017080100000001");
message.setPoundageAmount(0L);
message.setStatus(SingleWithdrawStatus.SINGLE_WITHDRAW_SUCCESS.getCode());
message.setWithdrawAmount(500L);
Map<String, Object> map = null;
map = objectToMap1(message);
System.out.println(map);
Map<String, Object> map2 = objectToMap2(message);
System.out.println(map2);
}
输出结果:
{fundPayNo=1111111111111112, poundageAmount=0, orderTime=2017-08-01 12:00:00, bankNo=111111111111112, errorMessage=, acqSerialNo=2017080100000999, withdrawAmount=500, outOrderNo=2017080100000001, status=03}
{fundPayNo=1111111111111112, poundageAmount=0, orderTime=2017-08-01 12:00:00, bankNo=111111111111112, errorMessage=, acqSerialNo=2017080100000999, withdrawAmount=500, outOrderNo=2017080100000001, status=03}
JAVA中将对象转为Map类型的更多相关文章
- javabean实体类对象转为Map类型对象的方法(转发)
//将javabean实体类转为map类型,然后返回一个map类型的值 public static Map<String, Object> beanToMap(Object obj) { ...
- Java中将对象转换为Map的方法
将对象转换为Map的方法,代码如下: /** * 将对象转成TreeMap,属性名为key,属性值为value * @param object 对象 * @return * @throws Illeg ...
- java中将list、map对象写入文件
链接地址:http://blog.sina.com.cn/s/blog_4a4f9fb50101p6jv.html 推荐:凤爪女瓜子男怪象该谁反思伦敦房价为什么持续暴涨 × wvqusrtg个 ...
- Java中将字符串转为驼峰格式
本文不再更新,可能存在内容过时的情况,实时更新请移步我的新博客:Java中将字符串转为驼峰格式: 使用CaseUtils 对Java字符串进行转换为驼峰格式: CaseUtils.toCamelCas ...
- java 实体对象转Map公共类
java 实体对象转Map公共类 package org.kxtkx.portal.utils; import java.lang.reflect.Field; import java.util.Ha ...
- java中list强转为map类型
起因:读取数据库文件的测试用例,测试用例需要存放到一个map中,方便下次调用, 读取的内容返回的内容存放在一个list中,并且数据内容是key=value的形式,最开始使用切片方式,做了很多无用功,后 ...
- java将对象转map,map转对象工具类
/** * 将map转换为一个对象 * * @param map * @param beanClass * @return * @throws Exception */ public static O ...
- 【JavaScript】JS将Java的Timestamp转为Date类型
遇到一个小需求,由于要填充日期插件里的数据,前台要把java后台传来的Date类型的数据转成YYYY-MM-DD格式的时间数据.通过json传输,Java的Date类型的数据自动转成了时间戳,例如 “ ...
- java字符串转为Map类型:split()方法的应用
方法一: package com.thinkgem.jeesite.modules.socketTest.demo2; import java.util.HashMap; import java.ut ...
随机推荐
- kettle在linux下执行任务
1.下载 最新版下载 7.1 https://community.hitachivantara.com/docs/DOC-1009855 准备 上传任务文件 .kjb,.ktr 上传mysql 驱动 ...
- ResNet 简介
resnet 又叫深度残差网络 图像识别准确率很高,主要作者是国人哦 深度网络的退化问题 深度网络难以训练,梯度消失,梯度爆炸,老生常谈,不多说 resnet 解决了这个问题,并且将网络深度扩展到了最 ...
- codeforces546D(从一个数中拆分素数)
D. Soldier and Number Game time limit per test 3 seconds memory limit per test 256 megabytes input s ...
- 字典和json 的区别 和转换
前言:字典和json非常像.接下来比较一下两者的异同 先看一下字典的写法: a = {', ', ' } 再看一下json的写法: { "studentInfo": { " ...
- python自学第5天,集合,文件读写
#!/usr/bin/env python #-*- coding:utf-8 -*- # Author:Hunter Yi s={1,1,1,2,3,4,5} print(s) #集合,去重 #关系 ...
- Python库,让你相见恨晚的第三方库
环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具.pyenv – 简单的 Python 版本管理工具.Vex – 可以在虚拟环境中执行命令.virt ...
- Python 带有参数的装饰器
def wrapper_out(flag): # 装饰器本身的参数 def wrapper(fn): # 目标函数 def inner(*args, **kwargs): # 目标函数执行需要的参数 ...
- SSM整合框架实现ajax校验
SSM整合框架实现ajax校验 刚学习了ssm框架,ajax校验成功,分享下 1.导入jar包
- Java 构造器Constructor 继承
Java默认构造方法 构造方法作用:初始化所定义的类的对象和属性. 构造方法没有返回类型. 2 继承中的构造器 子类是不继承父类的构造器(构造方法或者构造函数)的,它只是调用(隐式或显式). 如果父类 ...
- 【算法基础】卡尔曼滤波KF
kalman filter KCF 尺度变化是跟踪中比较基本和常见的问题,前面介绍的三个算法都没有尺度更新,如果目标缩小,滤波器就会学习到大量背景信息,如果目标扩大,滤波器就跟着目标局部纹理走了,这两 ...