java对象和map相互转换(java将map转换为对象)

本文目录一览:

java 中object对象与map可以相互强转吗?

Map不用强转也是Objec的子类

而Object类型,强转成Map,这就可能会造成错误。

就好比你闭上眼睛,递给你一个面包,你强转成食物。没问题,因为面包本来就是食物的一种。

但是递给你一个石头,你试图强制转成食物,那么就有问题了

java bean怎么转化为map 不用第三方

在做导入的时候,遇到了需要将map对象转化 成javabean的问题,也就是说,不清楚javabean的内部字段排列,只知道map的 key代表javabean的字段名,value代表值。

那现在就需要用转化工具了。是通用的哦!

首先来看 JavaBean 转化成Map的方法:

[java] view plaincopy

[java]

/**

* 将一个 JavaBean 对象转化为一个 Map

* @param bean 要转化的JavaBean 对象

* @return 转化出来的 Map 对象

* @throws IntrospectionException 如果分析类属性失败

* @throws IllegalAccessException 如果实例化 JavaBean 失败

* @throws InvocationTargetException 如果调用属性的 setter 方法失败

*/

@SuppressWarnings({ “rawtypes”, “unchecked” })

public static Map convertBean(Object bean)

throws IntrospectionException, IllegalAccessException, InvocationTargetException {

Class type = bean.getClass();

Map returnMap = new HashMap();

BeanInfo beanInfo = Introspector.getBeanInfo(type);

PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();

for (int i = 0; i propertyDescriptors.length; i++) {

PropertyDescriptor descriptor = propertyDescriptors[i];

String propertyName = descriptor.getName();

if (!propertyName.equals(“class”)) {

Method readMethod = descriptor.getReadMethod();

Object result = readMethod.invoke(bean, new Object[0]);

if (result != null) {

returnMap.put(propertyName, result);

} else {

returnMap.put(propertyName, “”);

}

}

}

return returnMap;

}

下面是将Map转化成JavaBean对象的方法:

[java] view plaincopy

[java]

/**

* 将一个 Map 对象转化为一个 JavaBean

* @param type 要转化的类型

* @param map 包含属性值的 map

* @return 转化出来的 JavaBean 对象

* @throws IntrospectionException 如果分析类属性失败

* @throws IllegalAccessException 如果实例化 JavaBean 失败

* @throws InstantiationException 如果实例化 JavaBean 失败

* @throws InvocationTargetException 如果调用属性的 setter 方法失败

*/

@SuppressWarnings(“rawtypes”)

public static Object convertMap(Class type, Map map)

throws IntrospectionException, IllegalAccessException,

InstantiationException, InvocationTargetException {

BeanInfo beanInfo = Introspector.getBeanInfo(type); // 获取类属性

Object obj = type.newInstance(); // 创建 JavaBean 对象

// 给 JavaBean 对象的属性赋值

PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();

for (int i = 0; i propertyDescriptors.length; i++) {

PropertyDescriptor descriptor = propertyDescriptors[i];

String propertyName = descriptor.getName();

if (map.containsKey(propertyName)) {

// 下面一句可以 try 起来,这样当一个属性赋值失败的时候就不会影响其他属性赋值。

Object value = map.get(propertyName);

Object[] args = new Object[1];

args[0] = value;

descriptor.getWriteMethod().invoke(obj, args);

}

}

return obj;

JAVA中json字符串如何转化为map对象,获取数据?

我们需要先把json字符串转化为net.sf.json.JSONObject对象,java中这样就可以完成json字符串到Map的转换了。

1.将数组转换为JSON:String[] arr = {“asd”,”dfgd”,”asd”,”234″};JSONArray jsonarray = JSONArray.fromObject(arr);System.out.println(jsonarray);

2.对象转换成JSON:UserInfo user = new UserInfo(1001,”张三”);JSONArray jsonArray = JSONArray.fromObject(user);System.out.println( jsonArray );

3.把Map转换成json, 要使用jsonObject对象:MapString, Object map = new HashMapString, Object();map.put(“userId”, 1001);map.put(“userName”, “张三”);map.put(“userSex”, “男”);JSONObject jsonObject = JSONObject.fromObject(map);System.out.println(jsonObject);

4.把List转换成JSON数据:ListUserInfo list = new ArrayListUserInfo();UserInfo user = new UserInfo(1001, “张三”);list.add(user);list.add(user);list.add(user);JSONArray jsonArray = JSONArray.fromObject(list);System.out.println(jsonArray);

5.

原创文章,作者:W9W7X,如若转载,请注明出处:https://www.506064.com/n/130786.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
W9W7XW9W7X
上一篇 2024-10-03 23:27
下一篇 2024-10-03 23:27

相关推荐

  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29
  • VSCode为什么无法运行Java

    解答:VSCode无法运行Java是因为默认情况下,VSCode并没有集成Java运行环境,需要手动添加Java运行环境或安装相关插件才能实现Java代码的编写、调试和运行。 一、…

    编程 2025-04-29
  • Java任务下发回滚系统的设计与实现

    本文将介绍一个Java任务下发回滚系统的设计与实现。该系统可以用于执行复杂的任务,包括可回滚的任务,及时恢复任务失败前的状态。系统使用Java语言进行开发,可以支持多种类型的任务。…

    编程 2025-04-29
  • Java 8 Group By 会影响排序吗?

    是的,Java 8中的Group By会对排序产生影响。本文将从多个方面探讨Group By对排序的影响。 一、Group By的概述 Group By是SQL中的一种常见操作,它…

    编程 2025-04-29

发表回复

登录后才能评论