BEANUTIL 对象转JSON

JsonUtil工具类 JsonUtil字符串和对象间转换工具类 立即下载
package cn.com.softmap.cache.util;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

/**
 */
public class BeanUtil {

   private static final List<?> LEAVES = Arrays.asList(Boolean.class, Character.class, Byte.class, Short.class,
         Integer.class, Long.class, Float.class, Double.class, Void.class, String.class, Date.class);

   /**
    * 把Bean转换为字符串.
    * 
    * @param obj
    * @return String
    */
   public static String toString(Object obj) {
      if (obj == null)
         return "null";

      if (LEAVES.contains(obj.getClass())) {
         return obj.toString();
      }
      if (obj instanceof Enum) {
         return ((Enum<?>) obj).name();
      }
      if (obj.getClass().isArray()) {
         Object[] oa = (Object[]) obj;
         StringBuffer sb = new StringBuffer();
         sb.append("[");
         for (int i = 0; i < oa.length; i++)
            sb.append(toString(oa[i]));
         sb.append("]");
         return sb.toString();
      }
      if (obj instanceof Collection) {
         Collection<?> tempCol = (Collection<?>) obj;
         Iterator<?> it = tempCol.iterator();
         StringBuffer sb = new StringBuffer();
         sb.append("[");
         for (int i = 0; it.hasNext(); i++) {
            if (i > 0) {
               sb.append(",");
            }
            Object val = it.next();
            sb.append(toString(val));
         }
         sb.append("]");
         return sb.toString();
      }
      if (obj instanceof Class) {
         return obj.getClass().getName();
      }
      StringBuilder sb = new StringBuilder();
      sb.append(obj.getClass().getSimpleName()).append(":[");
      for (Field f : obj.getClass().getDeclaredFields()) {
         if (Modifier.isStatic(f.getModifiers()))
            continue;
         f.setAccessible(true);
         sb.append(f.getName()).append(":");
         try {
            sb.append(toString(f.get(obj))).append(",");
         } catch (IllegalArgumentException e) {
            e.printStackTrace();
         } catch (IllegalAccessException e) {
            e.printStackTrace();
         }
      }
      sb.append("]");
      return sb.toString();
   }

   /**
    * 通过序列化进行深度复制
    * 
    * @param obj
    * @return Object
    * @throws Exception
    */
   public static Object deepClone(Object obj) throws Exception {
      return deserialize(serialize(obj));
   }

   /**
    * @param obj
    * @return byte[]
    * @throws IOException
    */
   public static byte[] serialize(Object obj) throws IOException {
      if (null == obj) {
         return null;
      }
      // 将对象写到流里
      ByteArrayOutputStream bo = new ByteArrayOutputStream();
      ObjectOutputStream oo = new ObjectOutputStream(bo);
      oo.writeObject(obj);
      oo.flush();
      return bo.toByteArray();
   }

   /**
    * @param bytes
    * @return Object
    * @throws Exception
    */
   public static Object deserialize(byte[] bytes) throws Exception {
      if (null == bytes || bytes.length == 0) {
         return null;
      }
      ByteArrayInputStream bi = new ByteArrayInputStream(bytes);
      ObjectInputStream oi = new ObjectInputStream(bi);
      return oi.readObject();
   }
}
Bean转JSON 支持Bean转JSON List<> 转JSON 立即下载

相关推荐

BeanUtil属性拷贝工具类

BeanUtil属性拷贝工具类,支持基本的javabean属性拷贝,通过java反射和泛型编程实现了list属性拷贝

BeanUtil 对象转json

package cn.com.softmap.cache.util;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputS...

weixin_30826761的博客 174

六轴机器人正解

采用的是John H.Craig在【机器人学导论】中的改进DH模型 1.六轴坐标系 2.DH参数 i αi−1\alpha_{i-1}αi−1​ ai−1a_{i-1}ai−1​ did_idi​ θi\theta_iθi​初值 1 0 0 0 0 2 -90 a1a_1a1​ 0 -90 3 0 a2a_2a2​ 0 -90 4 -90 a3a_3a3​ d4d...

m0_37581770的博客 2511

JsonUtil序列化、反序列化封装类

public class JsonUtil { private static ObjectMapper objectMapper = new ObjectMapper(); static { //对象的所有字段全部列入 objectMapper.setSerializationInclusion(Inclusion.ALWAYS); ...

江南烟雨゛断桥殇╮的博客 1651

SAP 发货在途库存管理:POD确认差异下的2种后续调整方案对比

本文详细解析了SAP发货在途库存管理中POD确认差异后的财务调整方案,对比了移动类型417和555 T两种处理方式的适用场景及财务影响。通过实际案例说明如何优化POD流程,减少库存差异损失,提升供应链管理效率。特别适合SAP SD模块用户及供应链管理人员参考。

chiman6219的博客 395

MediaCreationToolW11:Windows11系统升级与修复利器

在日常使用Windows11系统的过程中,我们可能会遇到一些棘手的问题,比如系统更新时出现异常导致无法成功更新,或者系统本身出现异常需要进行无损修复。此外,当我们的电脑尚未升级到Windows11,而我们又希望进行升级时,一款高效且可靠的工具就显得尤为重要。接下来,MediaCreationToolW11将开始下载Windows11的安装文件,并创建Windows11介质。在“选择你要执行的操作”界面中,选择“ISO文件”。此时,你可以使用你的账户登录系统,并开始使用全新的Windows11系统了。

nntxthml的博客 2409

json和Bean对象互转工具类

json和Bean对象互转工具类 package com.common.utils; import com.alibaba.druid.util.StringUtils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import java.util.HashMap; import java.util.Map; public class JSONUtils { /** * Bean对象转JSON

weixin_42048853的博客 506

告别配置噩梦:用Vcpkg三行命令为Easy3D自动安装Boost、CGAL和Qt(VS2022实测)

本文详细介绍了如何使用Vcpkg工具在VS2022环境下为Easy3D项目一键安装Boost、CGAL和Qt等依赖库,解决传统手动配置的复杂性问题。通过三行简单命令即可自动完成下载、编译和路径配置,大幅提升开发效率,特别适合C++开发者快速搭建3D图形开发环境。

weixin_42525582的博客 211

JSONObject:将Bean对象转化为JSON数据

导入的包: commons-beanutils-1.8.3.jar commons-collections-3.2.1.jar commons-lang-2.5.jar commons-logging-1.1.1.jar ezmorph-1.0.6.jar json-lib-2.4-jdk15.jar xom-1.1.jar JSONObject.fromO...

weixin_30458043的博客 928

【React】1、React入门与概览(JSX语法)

React入门 文章目录React入门一、React全家桶1. React是什么?2. 谁开发的?3. 为什么要学?4. React的特点5. 学习React之前要掌握的JavaScript基础知识二、React 概览组件JSXVirtual DOM关于虚拟DOM:Data Flow三、React基本使用相关js库四、React JSXJSX 语法规则五、模块与组件、模块化与组件化的理解5.1 模块5.2 组件5.4 模块化5.5 组件化 一、React全家桶 React基础 React-Router(R

Coding and studying 1381

华为od 面试八股文_测试/测试开发_01_含答案

华为od面试八股文_测试/测试开发_01_含答案

MISAYAONE的博客 3816

JavaBean和json数据之间的转换(二)含有date类型的JavaBean

1.前言   上次讲了简单的JavaBean和json格式之间的转换,代码很简单,但是实际过程中,往往用到的JavaBean都是比较复杂的,其他的字段还好,如果JavaBean中包含了date类型的字段,就会比较麻烦,今天我们久就来讲一下,date类型的字段该如何操作。 2.含有date类型的JavaBean和json之间的转换   1)首先,我们写一个含有date类型的JavaB...

dlnt89526的博客 334

【问题解决】Python 运行报错 `ModuleNotFoundError` 全网最全解决方案,一文搞定所有导包问题

本文全面解析Python中常见的ModuleNotFoundError和ImportError问题,提供从基础到高级的解决方案。文章首先分析问题原因,包括模块未安装、环境不一致、路径问题等,然后给出7种解决方案:安装缺失模块、检查Python环境、使用虚拟环境、添加搜索路径、相对导入、setup.py安装本地包和使用__init__.py。针对Jupyter Notebook、Docker容器等常见场景提供专门解决方案,并推荐使用requirements.txt、pipenv等预防措施。最后分享调试技巧,帮

博客 917

对象,map,list,object互转

【代码】对象,map,list,object互转。

qq_57703172的博客 695

Java语音革命:用代码打造永不疲倦的AI客服,让客户支持效率飙升300%!

客户支持领域常面临“薛定谔困境”,即无法预知客户来电的意图是投诉还是表扬。通过Java技术,尤其是语音识别和自然语言处理(NLP),可以有效解决这一问题。文章展示了如何利用Java代码构建“声纹量子引擎”,实现客户支持的自动化。核心技术包括录音与预处理、语音识别和语义理解。通过百度AI API和Stanford NLP,系统能够快速、准确地识别客户语音并理解其意图。数据表明,优化后的AI处理时间从15分钟缩短至18秒,语音识别准确率提升至98.5%,并发处理能力达到单实例1000+请求。这些技术显著提升了客

墨夶的博客 1035

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

黑马点评Redis笔记

黑马点评Redis笔记

weixin_45979976的博客 930

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Map-JSON-对象 三者转换

Map转实体类 1,使用BeanUtils工具类 方法 BeanUtils对象 populate(Object bean, Map<String,String[]>properties) 将Map数据封装到指定Javabean中,一般用于将表单的所有数据封装到javabean setProperty(Object obj,String name,Object ...

weixin_42949219的博客 3604

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

JAVA对象、数组转JSON

1.需要库: commons-beanutils-1.7.0.jar commons-collections-3.1.jar commons-lang-2.1.jar commons-logging-1.1.3.jar ezmorph-1.0.2.jar json-lib-2.4-jdk15.jar 2.转换方法:   //对象转json   sqlModel model ...

那些年的代码 1万+

java实体,MAP,json之间的转换

关于Map,实体类,json之间的转换,网上有很多,依赖的工具包也不一样,这里写一下最近遇到的几种转化,利用alibaba--fastjson进行转化(内容有些也是网上搜的,如有侵权,联系删除) 1、---json转Map 依赖alibaba--fastjson JSONObject jso = JSONObject.parseObject(jsonArr.getSt

清风 1万+

Java 将对象转为 Map 的几种方法

可以先将对象序列化为 JSON 字符串,然后再将该字符串反序列化为 Map 对象。Guava 不直接支持对象到 Map 的转换,需要手动创建 Map 并填充数据。Hutool 有一个 BeanUtil 类可以直接将对象转换为 Map。在 Java 开发中,有时需要将对象转为 Map,以下是几种方式。二、对象转为 Map 的几种方式。2.1 使用 Jackson。2.4 使用 Hutool。一、Java 对象示例。2.3 使用 Guava。2.2 使用 Gson。

长安明月的博客 953

Object 转Map,Map转Object方式总结

商品业务对象定义:Product Product product = new Product(); product.setId(1L); product.setName("爱他美") product.setProductDt("2022-03-16") 第一种:通过Alibaba Fastjson实现: pom.xml 文件依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId

zhouzhiwengang的专栏 2万+

Maven项目中使用JSON时相关的依赖包

今天下午在Maven项目中使用JSON的时候遇到了很多问题, 比如输出对象时输出的是地址: getBooksById>>{indi.marcus.demo.model.Book@28b0599} 通过JSONObject.fromObject(book)转成JSON字符串如下: getBookById>>{“author”:“罗贯中”,“name”:“三国演义”,“id”:...

Marcus丶的博客 2984

json常用操作

java拷贝对象: BeanUtils.copyProperties(obj2,obj1);//后复前 Java对Json字符串解析: str=StringEscapeUtils.unescapeHtml4(""); JSONArray list=(JSONArray) JSONObject.parseArray(str);//json字符串转数组Record record=JSONO...

weixin_30457881的博客 119

使用json-lib

下载     到http://json-lib.sourceforge.net下载json-lib-1.1-jdk15.jar,运行json还需要的包有:commons-lang.jar、commons-logging.jar,commons-beanutils.jar、xom-1.0-2005-01-05.jar、ezmorph-1.0.1.jar,可在http://www.docjar.co...

java_kevin的专栏 165

java常用的json,jsonarray,map转对象

开发过程中常见的几种转换场景,设计json,jsonarray,map等

huangli的博客 3023
下一篇: 时间工具类
杜引强
博客等级 码龄13年 806粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值