当前位置: 首页 > news >正文

JSON数据格式【学习记录】

JSON介绍

JSON(JavaScript Objet Notation)是一种轻量级的数据交换格式。它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。它采用一种键:值对的文本格式来存储和表示数据,在系统交换数据过程中常常被使用,是一种理想的数据交换语言。

“XML的时代已经过去,现在是JSON的时代”。相信现在这个观点很多人已经默认认同,那么我们是否有认真思考过为什么现在JSON能够顶替XML的地位。我们来简单看下两种的表示方式:

<?xml version="1.0" encoding="gb2312"?>
<class><stu id="001"><name>杨过</name> <sex></sex><age>20</age></stu>  <stu id="002"><name>小龙女</name>    <sex></sex><age>18</age></stu>
</class>
[{"id": "001","name": "杨过","sex": "男","age": "20"},{"id": "002","name": "小龙女","sex": "女","age": "18"}
]

两种方式都是用来描述简单的班级信息,数据不多,但是明显可以看出JSON比XML更加简洁。具体区别可为以下几点:

  • 可读性:JSON和XML的可读性可谓不相上下,一边是简易的语法,一边是规范的标签形式,很难分出胜负。
  • 可扩展性:XML天生有很好的扩展性,JSON当然也有,因此XML能扩展的,JSON也可以扩展。
  • 编码程度:XML有丰富的编码工具,比如DOM4J、JDom等,JSON也提供许多工具。但是在没有工具的情况下,因为XML有很多结构上的字符,编程难度相对较高。
  • 解码难度:XML的解析需要考虑到子节点父节点,难度较大,而JSON的解析难度几乎为0,看上去就能理解数据结构。

JSON认知

JSON具有以下形式(JSON对象、JSON数组、JSON字符串)

  • JSON 对象

在这里插入图片描述

{"id": "002","name": "小龙女","sex": "女","age": "18"
}

这就是一个简单的JSON对象,我们观察可以得出的一些语法:

  1. 数据在花括号中{}
  2. 数据处以键:值对的形式出现(其中键多以字符串的形式出现,值可以为字符串、数值以及JSON对象)
  3. 每两个键:值对以,分隔,最后一个键值对省略,

我们按照上述三个特征,便可以很简单的构建出一个JSON对象。

  • JSON 数组

在这里插入图片描述

["value1","value2","value3"]

[{"id": "001","name": "杨过","sex": "男","age": "20"},{"id": "002","name": "小龙女","sex": "女","age": "18"}
]

数组的表示方式也很简单:

  1. 头尾由[]包裹
  2. 数据主键以,隔开
  • JSON 字符串

在这里插入图片描述

'{"id": "001", "name": "杨过", "sex": "男", "age": "20"}'

JSON字符串与Java的字符串非常相似。

  1. 它必须以""''包裹数据,支持字符串的各种操作
  2. 里面的数据格式可以为JSON对象,也可以是JSON数组亦或者是两个基本类型的组合变形

以上便是JSON的基本形式,JSON可以适用于各种语言,每个语言皆有各自的JSON实现方式。

JSON序列化反序列化的框架有很多,最常见的Jackson、阿里巴巴开源的FastJson、谷歌的GSON、apache提供的json-lib等,下面我们主要来熟悉一下:Java语言中FastJson的使用。

相关文章:

JSON数据格式【学习记录】

JSON介绍 JSON&#xff08;JavaScript Objet Notation&#xff09;是一种轻量级的数据交换格式。它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。它采用一种键:值对的文本格式来存储和表示数据&#xff0c;在系统交换数据过程中常常被使用&#xff0c;是…...

LeetCode——1234. 替换子串得到平衡字符串

一、题目 有一个只含有 ‘Q’, ‘W’, ‘E’, ‘R’ 四种字符&#xff0c;且长度为 n 的字符串。 假如在该字符串中&#xff0c;这四个字符都恰好出现 n/4 次&#xff0c;那么它就是一个「平衡字符串」。 给你一个这样的字符串 s&#xff0c;请通过「替换一个子串」的方式&a…...

Web自动化测试——selenium篇(二)

文章目录一、浏览器相关操作二、键盘操作三、鼠标操作四、弹窗操作五、下拉框选择六、文件上传七、错误截图一、浏览器相关操作 浏览器窗口大小设置 driver.manage().window().maximize();//窗口最大化 driver.manage().window().minimize();//窗口最小化 driver.manage().wi…...

RK3399平台开发系列讲解(文件系统篇)虚拟文件系统的数据结构

🚀返回专栏总目录 文章目录 一、超级块二、挂载描述符三、文件系统类型四、索引节点五、目录项沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍虚拟文件系统的数据结构。 一、超级块 文件系统的第一块是超级块,用来描述文件系统的总体信息。当我们把文件系…...

企业财务管理升级,智慧税务和数据可视化打造新标准

一、引言在发展社会主义市场经济的过程中&#xff0c;税收承担着组织财政收入、调控经济、调节社会分配的职能。中国每年财政收入的90%以上来自税收&#xff0c;其地位和作用越来越重要&#xff0c;可称之为国家经济的“晴雨表”&#xff0c;有效进行税务管理、充分挖掘税务大数…...

JFET(结型场效应管)

JFET的结构示意图 参考&#xff1a;https://blog.csdn.net/weixin_45882303/article/details/106008695 下图是实际结构图&#xff0c; 下面是原理图和符号表示&#xff08;参考连接中的图片&#xff09; 分析 VGS 对电压id的控制&#xff08;固定VDS&#xff09; 当让D和…...

oceanbase部署--使用OBD部署obagent和promethous_grafana软件

obagent OBAgent 通常部署在 OBServer 节点上。OBAgent支持推、拉两种数据采集模式&#xff0c;可以满足不同的应用场景。 OBAgent默认支持的插件包括主机数据采集、OceanBase 数据库指标的采集、监控数据标签处理和 Prometheus 协议的 HTTP 服务。 1&#xff09;编辑 OBAgent …...

浏览器广告拦截插件| 浏览器搜索广告横飞怎么办

文章目录浏览器广告拦截插件| 浏览器搜索广告横飞怎么办一、效果二、安装浏览器广告拦截插件| 浏览器搜索广告横飞怎么办 浏览器广告横飞怎么办&#xff1f;今天教你一招解决&#xff01;很多小伙伴说自己用的浏览器总是有广告。 今天咱们就针对这个问题分享一个浏览器插件&a…...

Redis优化内存篇

【内存消耗】 场景&#xff1a;业务ID->图片ID&#xff08;KV:partnerId->objectId&#xff09;。 刚开始&#xff0c;我们保存了1亿张图片&#xff0c;大约用了6.4GB的内存。 随着图片数据量的不断增加&#xff0c;Redis变慢了。 新的认知&#xff1a;String类型并不是适…...

Vue原理解析

文章目录1. VUE的响应式原理1.1 ViewModel1.2 双向绑定的基本原理1.3 什么是响应性1.4 Vue 中的响应性是如何工作的2. Vue 渲染机制2.1 虚拟 DOM2.2 渲染管线2.3 带编译时信息的虚拟 DOM2.3.1 静态提升2.3.2 修补标记 Flags2.3.3 树结构打平2.3.4 对 SSR 激活的影响1. VUE的响应…...

C# Lambda表达式含义及各种写法

Lambda表达式在各个语言中的表达方式都不太相同&#xff0c;本文重点介绍C#的Lambda表达式。 首先&#xff0c;Lambda表达式就是一个匿名的方法/函数。 以下面的一个完整版作为例子&#xff0c;前面是参数&#xff0c;后面是返回值&#xff1a; 由于 Lambda表达式和委托常常一起…...

计算机组成原理:1. 计算机系统概论

更好的阅读体验\huge{\color{red}{更好的阅读体验}}更好的阅读体验 文章目录1.1 计算机系统简介1.1.1 计算机软硬件概念1.1.2 计算机的层次1.1.3计算机组成和计算机体系结构1.2 计算机的基本组成1.2.1 冯诺伊曼计算机的特点1.2.2 计算机的硬件框图1.2.3 计算机的工作步骤1.3 计…...

【c#】c#常用小技巧方法整理(5)—— 字符串操作类

1、GetStrArray(string str, char speater, bool toLower) 把字符串按照分隔符转换成 List 2、GetStrArray(string str) 把字符串转 按照, 分割 换为数据 3、GetArrayStr(List list, string speater) 把 List 按照分隔符组装成 string 4、GetArrayStr(List list) 得到数组列表以…...

用队列实现栈VS用栈实现队列

之前我们就讲过队列&#xff0c;栈的基础知识&#xff0c;笔者之前有过详细的介绍&#xff0c;感兴趣的可以根据笔者的个人主页进行查找&#xff1a;https://blog.csdn.net/weixin_64308540/?typelately225. 用队列实现栈请你仅使用两个队列实现一个后入先出&#xff08;LIFO&…...

MY2480-16P语音模块的使用

MY2480-16P语音模块的使用开发环境&#xff1a;STM32CUBEMXKEIL5辅助软件&#xff1a;串口助手、迅捷文字转语音一、MY2480-16P语音模块引脚图及引脚定义二、选择触发方式三、使用串口控制MY2480-16P语音模块四、模块使用指南开发环境&#xff1a;STM32CUBEMXKEIL5 辅助软件&a…...

I/O 多路复用

。新到来一个 TCP 连接&#xff0c;就需要分配一个进程或者线程&#xff0c;那么如果要达到 C10K&#xff0c;意味着要一台机器维护 1 万个连接&#xff0c;相当于要维护 1 万个进程/线程&#xff0c;操作系统就算死扛也是扛不住的。 一个进程虽然任一时刻只能处理一个请求&…...

2023 最新版网络安全保姆级指南,从0到1,建议收藏!

一、网络安全学习的误区 1.不要试图以编程为基础去学习网络安全 不要以编程为基础再开始学习网络安全&#xff0c;一般来说&#xff0c;学习编程不但学习周期长&#xff0c;且过渡到网络安全用到编程的用到的编程的关键点不多。一般人如果想要把编程学好再开始学习网络安全往…...

力扣39.组合总数

文章目录力扣39.组合总数题目描述方法1&#xff1a;深搜回溯力扣39.组合总数 题目描述 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形式返回。你可…...

sql的case when用法详解

简单CASE WHEN函数&#xff1a; CASE SCORE WHEN A THEN 优 ELSE 不及格 END CASE SCORE WHEN B THEN 良 ELSE 不及格 END CASE SCORE WHEN C THEN 中 ELSE 不及格 END等同于&#xff0c;使用CASE WHEN条件表达式函数实现&#xff1a; CASE WHEN SCORE A THEN 优WHEN SCORE …...

AtCoder Grand Contest 061(题解)

A - Long Shuffle 这道题本质是一个找规律的题 既然是打表题&#xff0c;我们先暴力把他打出来 (盗一张图.jpg) 接下来就是在这张图中挖掘答案 我们可以明显的看到偶数行是有一些规律的 要么是相邻对的互换&#xff0c;要么不变 不变和互换的位置也有讲究&#xff0c;在二进制…...

生成系列论文:文本控制的3d点云生成 TextCraft(一):论文概览

TextCraft: Zero-Shot Generation of High-Fidelity and Diverse Shapes from Text 论文原文&#xff1a; https://arxiv.org/abs/2211.01427 论文的研究动机 DALL2已经在文本控制的图像生成上取得很好的效果&#xff0c;但是基于文本控制的3d点云生成的研究还不太成熟&#…...

IDEA常用插件

常用IDEA插件 Codota 插件下载地址&#xff1a;Codota AI Autocomplete for Java and JavaScript - IntelliJ IDEs Plugin | Marketplace IDEA的自动补全功能已经很强大了&#xff0c;但是这个插件的自动补全功能更加强大&#xff0c;这是一个基于AI技术&#xff0c;学习了大量…...

Spring的事务传播机制

多个事务方法相互调用时&#xff0c;事务如何在这些方法之间进行传播&#xff0c;Spring中提供了七种不同的传播机制&#xff0c;来保证事务的正常执行&#xff1a; REQUIRED&#xff1a;默认的传播机制&#xff0c;如果存在事务&#xff0c;则支持/加入当前事务&#xff0c;如…...

Python:路径之谜(DFS剪枝)

题目描述 小张冒充 X 星球的骑士&#xff0c;进入了一个奇怪的城堡。 城堡里边什么都没有&#xff0c;只有方形石头铺成的地面。 假设城堡地面是 nn 个方格。如下图所示。 按习俗&#xff0c;骑士要从西北角走到东南角。可以横向或纵向移动&#xff0c;但不能斜着走&#xf…...

阿里巴巴在开源压测工具 JMeter 上的实践和优化

Apache JMeter [1] 是 Apach 旗下的开源压测工具&#xff0c;创建于 1999 年初&#xff0c;迄今已有超过 20 年历史。JMeter 功能丰富&#xff0c;社区&#xff08;用户群体&#xff09;庞大&#xff0c;是主流开源压测工具之一。 性能测试通常集中在新系统上线或大型活动前&…...

React Draggable插件实现拖拽功能

React Draggable插件实现拖拽功能1.下载Draggable插件2.引入Draggable插件3.设置一个div&#xff0c;并设置样式&#xff0c;并用Draggable包裹起来4.设置拖拽的范围5.Draggable常用props1.下载Draggable插件 npm install react-draggable2.引入Draggable插件 // 引入拖拽插件…...

MySQL-运算符

算术运算符: 加法运算-: 减法运算*: 乘法运算/: 除法运算&#xff0c;返回商%: 求余运算&#xff0c;返回余数例&#xff1a;创建n5表&#xff0c;插入数字100&#xff0c;查看数据表分别查看、-、*、/、%mysql> create table n5(-> num int); Query OK, 0 rows affected…...

Hudi-基本概念(时间轴、文件布局、索引、表类型、查询类型、数据写、数据读、Compaction)

文章目录基本概念时间轴(TimeLine)文件布局&#xff08;File Layout&#xff09;Hudi表的文件结构Hudi存储的两个部分Hudi的具体文件说明索引&#xff08;Index&#xff09;原理索引选项全局索引与非全局索引索引的选择策略对事实表的延迟更新对事件表的去重对维度表的随机更删…...

数据分享|中国各省、各市、各区县分年、分月、逐日平均气温数据(2000年~2019年)

今天分享给大家的是 2000 年~2019 年中国各省、各市、各县的分年、分月、逐日的平均气温数据(单位:摄氏度) 原始数据来源于国家气象科学数据共享服务平台-中国地面气候资料日值数据集(V3.0),原始数据是各个观测站点的日度数据,为了方便大家使用,我使用 Barnes 方法(…...

steam/csgo搬砖,2023年最暴利的项目

这个项目赚钱主要来源于两个地方&#xff1a; 1.比如说今天美元的汇率是1美元6.8人民币&#xff0c;那我们有特定的渠道能拿到1美元5.0-5.5左右人民币的价格&#xff0c;100美元的汇率差利润就有180元左右的利润&#xff0c;当然这个价格是根据国际的汇率上下会有浮动的。 2.…...

做网站公司的出路/安卓手机优化神器

编辑推荐:内容简介: 《C语言程序设计项目教程》以C语言基础知识→核心技术→高级应用为主线&#xff0c;以项目为背景&#xff0c;采取任务驱动的方法来组织编写&#xff0c;全书深入浅出地讲解了C语言的各项技术&#xff0c;并以大量的实例来加深读者对知识的理解和运用。在…...

商场建设相关网站/福州整站优化

一、非线性分类问题 1、什么是非线性分类问题&#xff1f;非线性分类问题是指通过利用非线性模型才能很好地进行分类的问题。感知机、之前介绍的两种支持向量机模型都是通过一个超平面将数据分成正负两类。但是有些情况并非一条直接或者一个平面就能把数据切分&#xff0c;可能…...

网站如何做关键词优化/百度公司推广电话

从第一页开始往前刷&#xff0c;碰到不会的就学&#xff0c;实在太难的就跳 目前有47页 看看自己能狗到什么程度 come on gogogo &#xff01;&#xff01;&#xff01;...

网站页脚模板/个人网站推广方法

一个640x640的YUV420P图像占用的字节数为&#xff1a;640 x 640 x 3 / 2 2304000 字节。 YUV420P是一种视频编码格式&#xff0c;其中图像是分为三个通道&#xff1a;Y(亮度)、U(蓝色差)和V(红色差)。每个像素由一个Y值和两个UV值组成。因此&#xff0c;一个像素占用1个字节的…...

一起作做业网站/天天seo伪原创工具

bitsCN.comLinux下均在控制台下操作。导入数据库&#xff1a;前提&#xff1a;数据库和数据表要存在(已经被创建)(1)将数据表 test_user.sql 导入到test 数据库的test_user 表中[roottest ~]# mysql -uroot -p test < /www/web/test/test_user.sql(2) 将数据库 test.sql 导入…...

wordpress用lnmp还是lamp/seo推广优化平台

ps aux | grep spring | xargs kill -9 更多技术文章请关注公众号:架构师Plus, 扫码添加...