Java开发中json使用,各对象与json相互转换

Json:一种网络通信使用的数据格式,因为便于解析,比较流行,对象可以转为json,同样json也可以转对象。

下面介绍下Json工具的简单使用(fastjson && jackson)。

FastJson

  阿里的json数据解析工具包,国内比较流行,用的较多。

  对象转json字符串

    JSON.toJSONString(user);

  对象转json对象

    (JSONObject)JSON.toJSON(user);

  json字符串转对象

    JSON.parseObject(jsonString, User.class);  

  json对象转对象 

    User javaObject = JSON.toJavaObject(jsonObject, User.class);

  list 转 json

    String jsonString = JSON.toJSONString(users);

   json 转 list

    List<User> parseArray = JSON.parseArray(jsonString, User.class);

  完整示例代码(需要引入fastjson的jar包):
package test;//JsonTest.java 文件所在位置:test包

import java.util.ArrayList;
import java.util.List;


import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;


public class JsonTest {//User 类
    static class User{
        private Integer age;
        private String name;
        public Integer getAge() {
            return age;
        }
        public void setAge(Integer age) {
            this.age = age;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        @Override
        public String toString() {
            return "User [age=" + age + ", name=" + name + "]";
        }
        
    }
    
    public static void main(String[] args) {
        // new 一个User对象
        User user = new User();
        user.setAge(1);
        user.setName("xiaojun");
        
        //对象转json字符串
        String jsonString = JSON.toJSONString(user);
        System.out.println("对象转json字符串:\t" + jsonString);
        //对象转json对象
        user.setAge(2);
        JSONObject jsonObject = (JSONObject)JSON.toJSON(user);
        System.out.println("对象转json:\t" + jsonObject);
        
        //json字符串转对象
        User parseObject = JSON.parseObject(jsonString, User.class);
        System.out.println("json字符串转对象:\t" + parseObject);
        
        //json对象转对象
        User javaObject = JSON.toJavaObject(jsonObject, User.class);
        System.out.println("json对象转对象:\t" + javaObject);
        
        User user2 = new User();
        user2.setAge(9);
        user2.setName("xiaochen");
        ArrayList<User> users = new ArrayList<>();
        users.add(user2);
        users.add(user);
        System.out.println("list 转json============\t");
        System.out.println("准备转json的list:\t" + users);
        
        //list 转json
        String jsonString2 = JSON.toJSONString(users);
        System.out.println("list转json:\t" + jsonString2);
        
        //json 转list
        List<User> parseArray = JSON.parseArray(jsonString2, User.class);
        System.out.println("json转list:\t" + parseArray);
    }
    
}

 执行main方法Console控制台打印结果如下:

 

Jackson 

 与FastJson一样,Jackson 应该比fastjson 出现更早,api用法有些不一样,但是使用效果差不多

 使用jackson编写的json工具类,JsonUtil:

import java.util.List;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;

/**
 *
 */
public class JsonUtil {

    // 定义jackson对象
    private static final ObjectMapper MAPPER = new ObjectMapper();

    /**
     * 将对象转换成json字符串。
     * <p>Title: pojoToJson</p>
     * <p>Description: </p>
     * @param data
     * @return
     */
    public static String objectToJson(Object data) {
        try {
            String string = MAPPER.writeValueAsString(data);
            return string;
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 将json结果集转化为对象
     *
     * @param jsonData json数据
     * @param clazz 对象中的object类型
     * @return
     */
    public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {
        try {
            T t = MAPPER.readValue(jsonData, beanType);
            return t;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 将json数据转换成pojo对象list
     * <p>Title: jsonToList</p>
     * <p>Description: </p>
     * @param jsonData
     * @param beanType
     * @return
     */
    public static <T>List<T> jsonToList(String jsonData, Class<T> beanType) {
        JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);
        try {
            List<T> list = MAPPER.readValue(jsonData, javaType);
            return list;
        } catch (Exception e) {
            e.printStackTrace();
        }

        return null;
    }

}

 

 

本文不定期更新

转载于:https://www.cnblogs.com/Narule/p/10101300.html

JSON字符串与Java对象的相互转换 无论是将JSON字符串转换为Java对象,还是将Java对象转换为JSON字符串,都可以通过合适的第三方库来实现。通过JSON与Java对象的相互转换,我们可以在Java程序中方便地处理和传递JSON数据。本文将介绍如何在Java中进行JSON字符串与Java对象之间的转换,并提供相应的源代码示例。这些库提供了丰富的功能和灵活的配置选项,可以根据具体需求选择合适的库来进行JSON与Java对象之间的转换。通过以上示例,我们可以看到如何使用Gson库在Java中进行JSON字符串与Java对象之间的转换。 阅读详情

相关推荐

Java中JSON操作的全面指南:构建与对象转换

本文还有配套的精品资源,点击获取 简介:本文详细介绍Java对JSON对象的构建和转换操作,包括基本类型的使用、Gson与Jackson库的JSON处理技巧,以及JSON与Java对象之间的转换方法。特别强调了在Java EE环境中使用的JSON-P和JSON-B标准API,为开发者提供了丰富的信息以提升Java应用中处理JSON数据的能力。 1. JSON简介及其在...

weixin_35871529的博客 1478

Java对象和Json之间的转化

/ 创建一个 JSONObject 对象// 向 JSONObject 中添加基本类型的键值对jsonObject.put("name", "张三");// 创建一个嵌套的 JSONObject 对象addressObject.put("city", "北京");addressObject.put("street", "长安街");

立志成为架构师 3399

json与对象转换工具类

同样先将json字符串转换为json对象,再将json对象转换为java对象,如下所示。 JSONObject obj = new JSONObject().fromObject(jsonStr);//将json字符串转换为json对象 将json对象转换为java对象 Person jb = (Person)JSONObject.toBean(obj,Person.class);//将建json对象转换为Person对象

JSON字符串与对象互转

1、

weixin_44609018的博客 504

java对象与json对象之间互相转换实现方法示例

主要介绍了java对象与json对象之间互相转换实现方法,结合实例形式分析了java对象与json对象相互转换实现步骤与相关操作技巧,需要的朋友可以参考下

自绘CListCtrl时发现ON_WM_MEASUREITEM_REFLECT和DrawItem(LPDRAWITEMSTRUCT lpMeasureItemStruct) 无响应

自绘CListCtrl时发现ON_WM_MEASUREITEM_REFLECT和DrawItem(LPDRAWITEMSTRUCT lpMeasureItemStruct) 无响应 一般情况下,我们都是在 dialog 里面 放一个 list 控件,然后 用自己的类绑定自己的自绘对象,如同下面: 1.  在 dialog 里面 加一个 list 列表 2. 然后 绑定这个列表 哈哈...

mfreesky的专栏 2170

java中json和对象之间相互转换的运用

pom.xml 2.2.配置引入json文件工具类 PurUtil.java 2. 3.配置JSON和对象相互转化工具类 JsonUtil.java 2.4.配置java对象 Columns.java IXbusPlanInfoBuild.java MessageHeader.java Rows.java Table.java 说明: @JSONField在get方法进行设置,那么对象在转化为json格式的时候,将会按照JSONField设置的值进行转化;@JSONField在set方法设置,那么json格

nickel369的博客 2177

RS485/CAN总线防护电路设计:TVS选型与ESD防护实战解析

本文深入解析了RS485与CAN总线防护电路设计中的TVS选型与ESD防护实战技巧。针对工业现场常见的静电放电、浪涌等干扰,文章详细阐述了TVS管关键参数的选择、多级防护体系的构建,并特别强调了在隔离电路设计中地回路处理的重要性,帮助工程师设计出更可靠的通信接口。

metaverse5vr的博客 386

JSON使用

Json简介及使用

weixin_50769390的博客 7496

基于 SquashFS 构建 Linux 可读写文件系统

嵌入式 Linux 启动过程 本文所描述的的 Linux Image 由 BootLoader、kernel、initrd、rootfs 组成,它们共同存在于一个可以启动的存储设备中(本文以 USB 为例)。组成架构如下: 图 1. 可启动 linux 镜像文件结构 各个模块的作用如下: Boot Loader:由 BIOS 加载,用于将后续的 Kernel 和 initrd 的装载到内存中 kernel:为 initrd 运行提供基础的运行环境 initrd:检测并加载各种驱动程序 ro

wzq2009的专栏 1174

RK3568点不亮EK79007 MIPI屏?别急着改时序,先检查这个初始化命令

本文深入解析RK3568开发板调试EK79007 MIPI屏幕时初始化命令的关键作用,揭示80%的时序问题实际源于命令配置不当。通过典型故障案例,详细拆解初始化命令的调试方法、寄存器映射及系统化排查流程,帮助工程师快速定位和解决屏幕点亮问题。

weixin_33657090的博客 349

SpringMVC:JSON学习

java、SpringMVC

weixin_44820671的博客 704

命令行执行YOLO训练命令报错:1.PermissionError: [WinError 5] 拒绝访问 2.OMP: Error#15: Initializing libiomp5md.dll...

(已解决!)报错:1.PermissionError: [WinError 5] 拒绝访问 2.OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.

Gpengyuyan的博客 1125

java中json转对象_Java开发中json使用,各对象与json相互转换

Json:一种网络通信使用的数据格式,因为便于解析,比较流行,对象可以转为json,同样json也可以转对象。下面介绍下Json工具的简单使用(fastjson && jackson)。FastJson阿里的json数据解析工具包,国内比较流行,用的较多。对象转json字符串JSON.toJSONString(user);对象转json对象(JSONObject)JSON.toJS...

weixin_28725959的博客 4022

KDD 2025 | 人大团队提出多任务贝叶斯联邦学习算法,同时处理分类和回归

©PaperWeekly 原创 ·作者 |吕俊良单位 |中国人民大学统计学院本文介绍了中国人民大学统计学院的一篇关于多任务贝叶斯联邦学习的文章“Task Diversity in Bayesian Federated Learning: Simultaneous Processing of Classification and Regression”,本文被 KDD 2025 接收,代码已经...

Paper weekly 2746

Google Earth Engine(GEE)—— 显示如何使用迁移的训练样本进行多年分类的脚本(sentinel-2影像为例)光谱差异()

HydroSHEDS 是一种地图产品,它以一致的格式为区域和全球范围的应用程序提供水文信息。它提供了一套不同比例的地理参考数据集(矢量和栅格),包括河流网络、流域边界、排水方向和流量累积。请注意,对于北纬 60 度以上的地区,HydroSHEDS 数据的质量明显较低,因为没有可用的基础 SRTM 高程数据,因此分辨率较低的 DEM(USGS 提供的 HYDRO1k)。该数据集基于 15 角秒(赤道约 500 米)分辨率栅格数据提供嵌套的分层分水岭多边形。光谱信息和之前不同的点:训练结果。

此星光明博客 966

android开发中json与java对象相互转换

json与java对象的相互转换.(使用com.google.gson) 在Android开发过程中,客户端总是需要从服务器获取数据,包括XML和json格式,目前json格式的数据使用较为普遍,所以了解json与java对象两者之间的相互转换是很有必要的,一句话就能达到目的。 json转java对象: Object obj=new Gson().fromJson(like,new...

weixin_30511039的博客 464

让 VK31 的条件维护树长出你想要的分支:用 ABAP SE43 扩展定价 Area Menu COND_AV

摘要:本文深入解析了SAP系统中价格条件维护(VK31/VK32)的菜单结构优化方法。通过分析Area Menu(COND_AV)的三层架构(菜单对象、节点、报表),提出将业务语言融入菜单设计的解决方案。重点介绍了使用SE43事务码扩展标准菜单的具体步骤:创建Enhancement ID、新增业务节点、挂接定价报表,并强调需同步验证条件表映射关系。文章还提供了常见问题排查思路,建议从岗位视角重构菜单结构,最终实现高效、精准且符合业务语义的价格维护入口体系。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 89

c# 把一个list转为json_Web前端开发(22)——JSON数据和Java对象的相互转换

JSON数据和Java对象的相互转换Java对象转为JSON①导入jar包在编程环境中导入JSON解析器的相关jar包,这里以jackson为例进行讲解。比如:import com.fasterxml.jackson.databind.ObjectMapper;②创建核心对象比如创建Jackson核心对象ObjectMapper:ObjectMapper mapper = new Obj...

weixin_39637233的博客 321

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

java创建map_Web前端开发(22)——JSON数据和Java对象的相互转换

JSON数据和Java对象的相互转换Java对象转为JSON①导入jar包在编程环境中导入JSON解析器的相关jar包,这里以jackson为例进行讲解。比如:import com.fasterxml.jackson.databind.ObjectMapper;②创建核心对象比如创建Jackson核心对象ObjectMapper:ObjectMapper mapper = new Obj...

weixin_30768403的博客 164

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

JSON 与 Java对象的转化

JSON 与 Java对象的转化 Json 与 Java对象之间可以相互转换

番薯博客 314

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Java中json格式的字符串数组,list,json,map相互转换

日常开发中免不了和json格式的字符串数组,list,json,map打交道,因此这篇文章的着重点就是这四者的相互转换 1、json格式的字符串数组转list String json = "['北京','天津','杭州']";//"[\"北京\",\"天津\",\"杭州\"]"; String[] pathArr = (json.substring(1, j...

帅比的博客 1万+

fastjson小技巧——java对象,json对象,json数组,java集合的相互转换

json是我们经常使用的格式,我们也经常与java对象进行相互转化,比如打印对象的日志,或者存入redis等场景。那么他们之前的相互转化方法的名字很容易混淆,所以特此记录如下: public static void main(String[] args) { Nation nationBean1 = Nation.builder().name("汉族").dress("现代服饰").num(12342424).build(); Nation nationBe

可乐多点冰的博客 1141

使用FastJson对JSON字符串、JSON对象及数组进行转换

来源:IT技术  作者:seo实验室小编 http://www.seotest.cn/jishu/45488.html

三分恶的博客 2万+

探索 Hutool - JSON:高效的 JSON 处理利器

各位开发者们,咱今天来好好聊聊在 Java 开发里特别实用的一个工具——Hutool - JSON。在现代的软件开发中,JSON(JavaScript Object Notation)已经成为了数据交换的标准格式之一,无论是前后端交互,还是与第三方 API 通信,JSON 都扮演着至关重要的角色。在 Java 里处理 JSON 数据,以往的方式可能会比较繁琐,不过 Hutool - JSON 出现之后,一切都变得简单起来了。

十年磨一剑,java开发各种业务系统 2010
上一篇: Java简单介绍及Java生态
下一篇: nginx简单使用配置
afik51892
博客等级 码龄12年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值