java中常用的对象转json

Java与JSON:基本数据类型到Json的转换实践 在当今的软件开发领域,数据交互是一个不可或缺的环节,尤其是在Web开发和移动应用开发中。Java作为一门广泛使用的编程语言,其与JSON(JavaScript Object Notation)数据格式的交互显得尤为重要。JSON因其轻量级、易于人阅读和编写以及易于机器解析和生成的特点,已成为网络数据交换的标准格式之一。本章将首先介绍JSON数据格式的基础知识,包括它的数据结构和类型。随后,我们将探讨Java与JSON数据交互的必要性和优势,并简要概述其在不同应用场景中的重要性。 阅读详情

主要实现把java对常用的一些数据转换成Json,以便前台的调用,具体的操作如下:
public class ConvertJson {

   
    public static String object2json(Object obj) {
        StringBuilder json = new StringBuilder();
        if (obj == null) {
            json.append("\"\"");
        } else if (obj instanceof String || obj instanceof Integer
                || obj instanceof Float || obj instanceof Boolean
                || obj instanceof Short || obj instanceof Double
                || obj instanceof Long || obj instanceof BigDecimal
                || obj instanceof BigInteger || obj instanceof Byte) {
            json.append("\"").append(string2json(obj.toString())).append("\"");
        } else if (obj instanceof Object[]) {
            json.append(array2json((Object[]) obj));
        } else if (obj instanceof List) {
            json.append(list2json((List<?>) obj));
        } else if (obj instanceof Map) {
            json.append(map2json((Map<?, ?>) obj));
        } else if (obj instanceof Set) {
            json.append(set2json((Set<?>) obj));
        } else {
            json.append(bean2json(obj));
        }
        return json.toString();
    }
   
   
    public static String bean2json(Object bean) {
        StringBuilder json = new StringBuilder();
        json.append("{");
        PropertyDescriptor[] props = null;
        try {
            props = Introspector.getBeanInfo(bean.getClass(), Object.class)
                    .getPropertyDescriptors();
        } catch (IntrospectionException e) {
        }
        if (props != null) {
            for (int i = 0; i < props.length; i++) {
                try {
                    String name = object2json(props[i].getName());
                    String value = object2json(props[i].getReadMethod().invoke(
                            bean));
                    json.append(name);
                    json.append(":");
                    json.append(value);
                    json.append(",");
                } catch (Exception e) {
                }
            }
            json.setCharAt(json.length() - 1, '}');
        } else {
            json.append("}");
        }
        return json.toString();
    }

   
    public static String list2json(List<?> list) {
        StringBuilder json = new StringBuilder();
        json.append("{obj:[");
        if (list != null && list.size() > 0) {
            for (Object obj : list) {
                json.append(object2json(obj));
                json.append(",");
            }
            json.setCharAt(json.length() - 1, ']');
            json.append("}");
        } else {
            json.append("]}");
        }
        return json.toString();
    }

   
    public static String array2json(Object[] array) {
        StringBuilder json = new StringBuilder();
        json.append("[");
        if (array != null && array.length > 0) {
            for (Object obj : array) {
                json.append(object2json(obj));
                json.append(",");
            }
            json.setCharAt(json.length() - 1, ']');
        } else {
            json.append("]");
        }
        return json.toString();
    }

   
    public static String map2json(Map<?, ?> map) {
        StringBuilder json = new StringBuilder();
        json.append("{");
        if (map != null && map.size() > 0) {
            for (Object key : map.keySet()) {
                json.append(object2json(key));
                json.append(":");
                json.append(object2json(map.get(key)));
                json.append(",");
            }
            json.setCharAt(json.length() - 1, '}');
        } else {
            json.append("}");
        }
        return json.toString();
    }

   
    public static String set2json(Set<?> set) {
        StringBuilder json = new StringBuilder();
        json.append("[");
        if (set != null && set.size() > 0) {
            for (Object obj : set) {
                json.append(object2json(obj));
                json.append(",");
            }
            json.setCharAt(json.length() - 1, ']');
        } else {
            json.append("]");
        }
        return json.toString();
    }

   
    public static String string2json(String s) {
        if (s == null)
            return "";
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < s.length(); i++) {
            char ch = s.charAt(i);
            switch (ch) {
            case '"':
                sb.append("\\\"");
                break;
            case '\\':
                sb.append("\\\\");
                break;
            case '\b':
                sb.append("\\b");
                break;
            case '\f':
                sb.append("\\f");
                break;
            case '\n':
                sb.append("\\n");
                break;
            case '\r':
                sb.append("\\r");
                break;
            case '\t':
                sb.append("\\t");
                break;
            case '/':
                sb.append("\\/");
                break;
            default:
                if (ch >= '\u0000' && ch <= '\u001F') {
                    String ss = Integer.toHexString(ch);
                    sb.append("\\u");
                    for (int k = 0; k < 4 - ss.length(); k++) {
                        sb.append('0');
                    }
                    sb.append(ss.toUpperCase());
                } else {
                    sb.append(ch);
                }
            }
        }
        return sb.toString();
    }

}

使用第三方工具将各种对象转成json格式 使用第三方工具将各种对象转成json格式,比如JavaBean对象/List或Set或Map对象 立即下载

相关推荐

储能系统架构和控制

探讨了储能系统中EMS(能源管理系统)、BMS(电池管理系统)和PCS(功率转换系统)之间的协同机制,以及组串式和集中式储能系统的技术架构、优势和局限性。EMS根据电价、电网需求和电池状态制定充放电策略,BMS提供电池数据,PCS执行充放电控制。组串式系统具有独立管理和灵活扩展的优势,但成本较高;集中式系统成本效益高,但存在环流和木桶效应问题。

蓝龙宝藏的博客 3968

java byte数组转json对象

String message = new String("byte数组"); //去掉多余的引号和转义字符 String substring = message.substring(1, message.length() - 1).replace("\\\"","'"); //转化为json对象 JSONObject jsonObject = new JSONObject(substring);

qq_36350266的博客 1万+

【TM1650】STM8S TM1650芯片控制程序

以下为.h文件: #ifndef __TM1650_I2C_H #define __TM1650_I2C_H #include "stm8s.h" #include "stm8s_gpio.h" #include "tim1.h" #include "usart2.h" #include &lt;iostm8s103f3.h&gt; #include &lt;intrinsics....

cxw312864660的博客 1万+

Fastjson 判断 JSONObject 与 JSONArray

Object obj = myJsonObj.get("xxxx"); if(obj instanceof JSONObject){ JSONObject jsonObject = (JSONObject) obj; }else if(obj instanceof JSONArray){ JSONArray jsonArray = (JSONArray) obj; }else{...

MazenChan的博客 622

从零到一:QT for OpenHarmony 开发环境实战搭建与踩坑指南

本文是一份详尽的QT for OpenHarmony开发环境搭建实战指南。文章手把手教你如何在Windows和macOS系统上,从环境准备、核心工具(DevEco Studio与社区版QT SDK)安装配置,到创建首个QT Quick项目、解决构建部署中的常见问题,最终实现应用在OpenHarmony设备上运行。内容涵盖关键配置修改、资源管理及深度踩坑经验,旨在帮助开发者高效开启跨平台开发之旅。

weixin_29190573的博客 325

SPL06气压温度传感器SPI驱动与补偿算法详解

气压传感器与温度传感器是嵌入式环境感知系统的核心组件,其测量精度高度依赖于MEMS芯片的校准参数与非线性补偿机制。SPL06作为集成式高精度数字传感器,采用24位Σ-Δ ADC与片内补偿引擎,需结合唯一出厂校准系数(即‘芯片指纹’)进行多阶数学修正,才能将原始ADC值转化为符合计量要求的帕斯卡(Pa)与摄氏度(℃)物理量。该过程涵盖SPI通信协议解析、寄存器时序控制、大端数据拼接、二进制补码处理及浮点/定点混合运算等典型嵌入式工程实践。广泛应用于无人机高度计、智能穿戴海拔监测与IoT气象终端中。

weixin_34640289的博客 143

java中instanceof使用详解

publicstaticbooleantest(Objectobj){ if(objinstanceofJSONObject){ returntrue; } returnfalse; } instanceof 是java的二元...

256

双目相机立体匹配算法概述(含Python代码)

立体匹配任务是计算机视觉中的一个重要问题,旨在从一对具有相同场景的图像中估计每个像素的视差(disparity)。本文对现有的传统算法和深度学习算法进行了综述,以便于各位选择合适的立体匹配算法用于深度估计或三维建模。

m0_59257547的博客 8291

instanceof 使用方法

instanceof 测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型 object instanceof JSONObject ? (JSONObject)object : null; 如果左侧(object)是右侧(JSONObject)的实例,返回(JSONObject)object,否则为null ...

qq_17032077的博客 417

TI硬件笔试面试题型解析上

摘要: 本专栏聚焦大厂硬件笔试面试题解析,当前第14期以德州仪器(TI)为例,涵盖模拟电路与数字电路核心考点。模拟电路部分涉及最大功率传递定理、运放设计(虚短/虚断)、共模抑制比(CMRR)及高频PCB信号完整性;数字电路包括CMOS与TTL对比、建立/保持时间、竞争冒险消除、D触发器分频及“线与”逻辑实现。文章强调通过例题掌握解题方法与知识点,助力读者应对硬件工程岗位的笔试与面试挑战,附常见考点总结与实用建议。全文注重理论与实践结合,提供典型题型解析与设计思路。(150字)

启芯硬件的博客 951

实战17:GCN+LSTM图卷积神经网络预警预测 完整代码数据集

实战17:GCN+LSTM图卷积神经网络预警预测 完整代码数据集

1945

【项目】jsonobject工具类

package com.common.utils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.parser.Feature; import com.alib...

Sucker的小笔记 1092

HDMI接口及其在编程中的应用

在编程中,我们可以使用HDMI接口来控制和管理连接到计算机的HDMI设备。本文将介绍HDMI接口的基本原理以及如何在编程中使用HDMI接口。在编程中,我们可以使用HDMI接口来控制和管理连接到计算机的HDMI设备。本文介绍了HDMI接口的基本原理,并提供了使用Python编程语言和相关库实现HDMI接口应用的示例代码。我们可以使用编程语言提供的音频库来生成和播放音频,并将其通过HDMI接口输出到连接的设备上。我们可以使用编程语言提供的音频库来生成和播放音频,并将其通过HDMI接口输出到连接的设备上。

CodeByte的博客 802

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

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

huangli的博客 3023

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Java对象转JSON时常用的注解 [JSON][Java]

排除属性属性值的格式化。

m0_57001006的博客 2937

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

java中对象转json字符串的常用方式

对象转json

浩浩的博客 8523

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

fastjson json转对象_做项目还不会JSON的转换?

JSON作为现阶段前后端最常用的的一种数据格式,在各种交互场合都会使用到它。所以,掌握JSON串的使用是后端开发的必备的技能。当然,手撕API可以解决自己需要的对象转换的一些问题,但是在实际的开发过程中,还是使用现成的代码比较合适。下面简要介绍阿里的FastJson进行对象与JSON的转换0x00.导入FastJson的包这里使用的是maven的包管理工具,具体的坐标如下com.ali...

weixin_39629467的博客 174

Java 常用工具类(34) : json转对象字段

【代码】Java 常用工具类(34) : json转对象字段。

Lxinccode的博客 274

Fastjson 之 Json 对象、Json 字符串、Java 对象之间的转换

Fastjson 相关介绍   支持类型:支持 java bean、集合、Map、日期、Enum、支持泛型、支持自省 常用对象:   JSON:fastJson 的解析器,用于 JSON 格式字符串与 JSON 对象及 javaBean 之间的转换.   JSONObject:fastJson 提供的 json 对象.   JSONArray:fastJson 提供 json 数组对象.1、Java 对象转 JSON 对象1 2 JSONObject json = (JSONObject) JSON.toJ

Json的知识梦工厂 511

在Java中进行JSON转换的常用库

由于Java(最新LTS版本是Java11)内置中没有支持JSON转换和解析的库, 我们需要使用第三方库. 常用的库有谷歌的Gson, 阿里的Fastjson, 谷歌开发人员fangyidong的json-simple等. 这里给出Fastjson的三个使用例子, 以方便参考快速上手.

ariesslin的专栏 440

JSON转换工具

JSON(JavaScript Object Notation):是一种轻量级的数据交换格式。 它是基于 ECMAScript 规范的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于计算机解析和生成,并有效的 提升网络传输效率。

itzhuzhu的博客 4万+

java中常用的json转换工具类

java中常用的json转换工具类

weixin_44953395的博客 2729

List<Map<String, Object>> 转List<T> list map对象转list对象

List 转List<T> list map对象转list对象

weixin_42326851的博客 8399

json转string_几种常见的Json工具包

概述作为 面向对象 开发的程序员,每天的业务代码会遇到大量的 Json 处理。本文从最常见的几个类库 gson, fastjson, jackson 进行基本操作, 仅作记录。基础准备首先创建 java 对象用于测试角色/** * @author 当我遇上你 * @公众号 当我遇上你 * @since 2020-06-10 */ @Data @NoArgsConstructor @AllA...

weixin_39781323的博客 626

Java中那些常用的json库性能比较,常见json库用法示例代码

前言 在restful风格流行的今天,json想必大家都不陌生。JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。在Java中,有很多json库,比如阿里巴巴的fastjson,谷歌的gson等等。那么,它们之间的性能表现如何呢?下面就通过实际例子分析下。 用于比较的库 用4中json库进行比较,分别是:FastJson,Gson,Jackson 比较方式 主要从开发中常用的几方面入手比较,分别如下: 1、

Javaesandyou的博客 1329

转json_做项目还不会JSON的转换?

JSON作为现阶段前后端最常用的的一种数据格式,在各种交互场合都会使用到它。所以,掌握JSON串的使用是后端开发的必备的技能。当然,手撕API可以解决自己需要的对象转换的一些问题,但是在实际的开发过程中,还是使用现成的代码比较合适。下面简要介绍阿里的FastJson进行对象与JSON的转换0x00.导入FastJson的包这里使用的是maven的包管理工具,具体的坐标如下com.ali...

weixin_35626408的博客 90
上一篇: jquery的$符号冲突问题
下一篇: js&nbsp;获取&nbsp;前一个页面的&nbsp;url
jarry.liu
博客等级 码龄16年 36粉丝 304原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jarry.liu

如果对您有帮助,鼓励下博主吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值