JSON.parseObject 解析JSON格式数据

article/2025/9/28 8:05:12

fastjson是阿里巴巴开源产品之一,解析速度快

下载地址(maven仓库):https://mvnrepository.com/artifact/com.alibaba/fastjson/1.2.53

// 当待解析的JSON字符串是简单对象类型的,即用大括号包围,此时采用JSONObject对象来处理:
public void test(){String str = "{\"success\":\"true\",\"returnAddress\":\"123\"}";JSONObject jsonObject=JSON.parseObject(str);String returnAddress = jsonObject.getString("success");System.out.println(returnAddress);}                                                        

在这里插入图片描述

在这里插入图片描述

// 对于大括号包含小括号时,逐层解析
public void test1(){String result = "{\"success\":\"true\",\"data\":{\"shopId\":\"123\"}}";JSONObject shop_user =JSON.parseObject(result);String str= JSON.parseObject(shop_user.getString("data")).getString("shopId");System.out.println(str);
}
// 当待解析的JSON字符串是简单数组类型的,即用中括号包围,此时采用JSONArray对象来处理:public void test2() {       String jsonStr = "['你好','我不好','很好','不怎么好']";        JSONArray json = JSON.parseArray(jsonStr);String first = (String) json.get(0);        System.out.println(first);System.out.println(json);}
// JSON字符串为混合类型,既有简单对象,又有数组,逐层解析
public void test3() {String jsonStr = "[{'name':'倾城','age':'23'},{'name':'香湘','age':'17'},{'name':'剑雄','age':'27'}]";JSONArray jsonArr = JSON.parseArray(jsonStr);        JSONObject json = jsonArr.getJSONObject(0);System.out.println(json);
}
// JSON字符串有对应的类时,使用对象的解析
public void test4(){String jsonString = "{\"name\":\"张员外\",\"age\":\"44\",\"like\":{\"deliciousFood\":\"丸子\",\"number\":\"一碗\",\"girl\":\"小夫人\",\"girlName\":\"倾城\"},\"money\":[\"土地\",\"树林\",\"商铺\"],\"staff\":{\"name\":\"赵六\",\"position\":\"护卫\",\"charactor\":\"肥胖\"}}";        Popel p = JSON.parseObject(jsonString, Popel.class);        System.out.println(p);        
}

注意:这里推荐一个非常好用的JSON网站

在这里插入图片描述

package bean;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;/*** @author cxt* @date 2020/9/1*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Pople {private String name;private int age;private Like like;private String[] money;private Staff staff;
}@Data
@NoArgsConstructor
@AllArgsConstructor
class Like{private String deliciousFood;private String number;private String girl;private String girlName;
}@Data
@NoArgsConstructor
@AllArgsConstructor
class Staff{private String name;private String position;private String charactor;
}

在这里插入图片描述

JSONObject转成javaBean:

JSON.parseObject(json格式数据源,想要转换的对象); 将指定的JSON字符串转换成自己的实体类的对象

生成JSON字符串

/*** 生成json字符串*/public static String createJson(Object obj) {Gson gson = new Gson();return gson.toJson(obj);}

JSON.toJSONString将对象转成JSON

JSON.toJSONString(map, SerializerFeature.WriteMapNullValue) 指定序列化方式就打印出来


http://chatgpt.dhexx.cn/article/T2qspLbn.shtml

相关文章

JQuery 发送Json格式数据

简述&#xff1a; 需要封装一组Json格式的数据到服务器 知识点&#xff1a; 1. 调用jquery.json的库 2. AJAX Post 请求 Jquery下载地址 http://jquery.com/download/ Jquery.json http://code.google.com/p/jquery-json/ 代码&#xff1a; testSendJson.jsp <% page…

Json格式字符串转换成Json格式数据

1、json格式字符串 2、将json格式字符串转换成json格式 //json格式的字符串 String str "{ \"people\": [\n" "\n" "{ \"firstName\": \"Brett\", \"lastName\":\"McLaughlin\", \"email\&…

数据库中存储Json格式数据

在数据库中存储Json格式数据 1、表字段类型 json 2、Java代码有两种方式&#xff1a; 方式一 &#xff1a;属性定义成String类型。 往数据库中存储的值 必须为JSON格式的字符串&#xff0c;因为数据库中会做一次校验。 缺点&#xff1a;往数据库中存的数据是String类型&…

Mysql存储json格式数据

Mysql5.7版本以后新增的功能&#xff0c;Mysql提供了一个原生的Json类型&#xff0c;Json值将不再以字符串的形式存储&#xff0c;而是采用一种允许快速读取文本元素&#xff08;document elements&#xff09;的内部二进制&#xff08;internal binary&#xff09;格式。在Jso…

多路复用技术之时分复用

多路复用技术是通信技术领域的一个专业名词&#xff0c;从字面上的意思去理解就是将多路信号按照一定的规则共用同一条信道进行传输。 一、多路复用技术的分类 多路复用技术通常分为频分多路复用、时分多路复用、波分多路复用、码分多址和空分多址。 二、时分多路复用原理 …

“分集”与“复用”辨析

【注&#xff1a;本文中几乎所有文字与图片均来自网络&#xff0c;本人仅做了整理与归纳&#xff01;】 文章目录 分集与复用1. 分集与复用的概念1.1 分集1.2 复用 2. 分集与复用的目的2.1 分集的目的2.2 分集阶数与分集增益2.3 复用的目的 3. 分集与复用的分类3.1 分集技术3.…

认识LTE(七):LTE中的两种无反馈模式:发射分集(TM2)和开环空分复用(TM3)

认识LTE(七)&#xff1a;LTE中的两种无反馈模式&#xff1a;发射分集&#xff08;TM2&#xff09;和开环空分复用&#xff08;TM3&#xff09; 文章目录 认识LTE(七)&#xff1a;LTE中的两种无反馈模式&#xff1a;发射分集&#xff08;TM2&#xff09;和开环空分复用&#xff…

认识LTE(八):LTE中的反馈:闭环空分复用(TM4)

认识LTE(八)&#xff1a;LTE中的反馈&#xff1a;闭环空分复用&#xff08;TM4&#xff09; 文章目录 认识LTE(八)&#xff1a;LTE中的反馈&#xff1a;闭环空分复用&#xff08;TM4&#xff09;零.代码地址一.TM4到底反馈了什么&#xff1f;二.CQI反馈二.PMI 三.RI四.总结 零.…

图解通信原理与案例分析-21:4G LTE多天线技术--天线端口、码流、分集Diveristy、波束赋形BF、空分复用MIMO、空分多址

目录 前言&#xff1a; 第1章 MIMO多天线技术概述 1.1 三大目的 1.2 六大分类 第2章 单天线SISO&#xff08;单输入单输出&#xff09; 2.1 概述 2.2 实现原理--多路“异频”《发送接收》对 第3章 接收分集MISO&#xff08;多输入单输出&#xff09;&#xff1a;冗余接…

[4G5G专题-28]:架构-什么是多天线技术与5G大规模天线阵列、波束赋形、高阶空分复用?

目录 第1章 多天线技术概述 1.1 LTE的多天线技术回顾 1.2 5G大规模天线阵列、波束赋形以及其动机 第2章 什么是波束赋形 2.1 波束赋形与大规模天线阵列的关系 2.2 波束赋形的定义 2.3 波束赋形要回答和解决的两个问题 2.4 常见的波束赋形相关的专业术语 第3章 Active …

复用,多址的区分以及其涉及的相关数据速率

复用技术 为了让尽可能多的手机使用同一个频段&#xff0c;无线通信设计了多址复用技术&#xff1a; 时分多路复用&#xff08;Time Division Multiplexing&#xff0c;TDM)要求各个子通道按时间片轮流地占用整个带宽。时间片的大小可以按一次传送一位、一个字节或一个固定大…

王道 —— 操作系统的四个特征

1、知识总览 操作系统有并发、共享、虚拟、异步四个基本特征&#xff0c;并发和共享是两个最基本的特征&#xff0c;二者互为存在条件&#xff1b; 2、操作系统的特征 —— 并发 并发&#xff1a;指两个或者多个时间在同一时间间隔内发生。这些事件宏观上是同时发生的&#x…

操作系统学习笔记——总体总结

看书太慢容易抓不住重点&#xff0c;所以在此按照操作系统的主要内容分别查网上博客资料进行学习。 一、引论 操作系统基本特性&#xff1a; 并发&#xff1a; 1.并行与并发&#xff1a;并行性是指两个或多个时间在同一时刻发送&#xff1b;并发性是指两个或多是事件在同一…

数据库脏读、不可重复读、幻读

1. 脏读 &#xff1a;脏读就是指当一个事务正在访问数据&#xff0c;并且对数据进行了修改&#xff0c;而这种修改还没有提交到数据库中&#xff0c;这时&#xff0c;另外一个事务也访问这个数据&#xff0c;然后使用了这个数据。 2. 不可重复读 &#xff1a;是指在一个事务内&…

关于可重复读和幻读

最近看到MySQL隔离性的知识&#xff0c;发现网上很多人说可重复读所针对的操作是update&#xff0c;然后亲自试验了一把&#xff0c;见下文。 首先我们知道在读提交隔离级别下&#xff0c;同一事物A中以相同的查询语句可能得到的结果不一致的情况&#xff0c;即不可重复读。这是…

可重复读如何解决幻读

学习之前的疑问&#xff1a; 可重复读的概念 与 不可重复读的概念 行锁gap锁(间隙锁) 快照读 与 当前读区别 快照读中的MVCC 当前读中的gap锁 和 行锁 前几天面试时被问到了mysql可重复读如何解决幻读的问题&#xff0c;之前脑子中的概念只有增加了共享锁和排他锁进行避免&…

MySQL(四)—MVCC实现可重复读的原理

文章目录 一、MVCC概况二、MVCC实现原理1.两或三个隐藏字段。2.undo log3.一个数组4.ReadView 三、举例验证MVCC原理参考文献 一、MVCC概况 MVCC是什么&#xff1f;MVCC即多版本控制协议&#xff0c;InnoDB实现了MVCC作版本控制&#xff0c;防止不该被当前事务看到的数据看到。…

可重复读

《循序渐进DB2-系统管理、运行维护与应用案例》第10章锁和并发&#xff0c;本章首先介绍了通用的事务概念&#xff0c;并指出DB2在用户读取、写入数据时的加锁策略、锁模式、兼容性等。本章还介绍了在并发控制中常碰到的4种数据异常现象&#xff0c;同时讲述了DB2如何使用锁克服…

mysql不可重复读和重复读_脏读、幻读、不可重复读的区别是什么

脏读、幻读、不可重复读的区别&#xff1a;1、脏读就是指当一个事务正在访问数据&#xff0c;并且对数据进行了修改&#xff1b;2、不可重复读是指在一个事务内&#xff0c;多次读同一数据&#xff1b;3、幻读是指当事务不是独立执行时发生的一种现象。 【相关学习推荐&#xf…

Mysql如何实现可重复读

首先对于mysql来说相信也并不陌生&#xff0c;mysql默认的事务的隔离级别是3&#xff0c;即可以实现可重复读&#xff0c;那mysql又是怎样实现可重复读的呢&#xff1f; 下边进行简单的介绍 这里就要提到了mvcc&#xff0c;即多版本并发控制 首先先来看一个事务的执行图 此时…