Json 数据格式

如何利用JSON Schema校验JSON数据格式 阅读详情
 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。

JSON建构于两种结构:

  • “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
  • 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
  • JSON具有以下这些形式:

    对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。

          

数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。


 

值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。

           

字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。

字符串(string)与C或者Java的字符串非常相似。

                     

数值(number)也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。

                     

空白可以加入到任何符号之间。

JSON 基础

简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序.

简单 JSON 示例

按照最简单的形式,可以用下面这样的 JSON 表示名称/值对:

{ "firstName": "Brett" } 

这个示例非常基本,而且实际上比等效的纯文本名称/值对占用更多的空间:

firstName=Brett

               

但是,当将多个名称/值对串在一起时,JSON 就会体现出它的价值了。首先,可以创建包含多个名称/值对的记录,比如:

{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" }

从语法方面来看,这与名称/值对相比并没有很大的优势,但是在这种情况下 JSON 更容易使用,而且可读性更好。例如,它明确地表示以上三个值都是同一记录的一部分;花括号使这些值有了某种联系。

值的数组

当需要表示一组值时,JSON 不但能够提高可读性,而且可以减少复杂性。

如果使用 JSON,就只需将多个带花括号的记录分组在一起:

{ "people": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }
]}

这不难理解。在这个示例中,只有一个名为 people 的变量,值是包含三个条目的数组,每个条目是一个人的记录,其中包含名、姓和电子邮件地址。上面的示例演示如何用括号将记录组合成一个值。当然,可以使用相同的语法表示多个值(每个值包含多个记录):

{ "programmers"(名称):(值为一个数组,数组里包含对象) [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },
(一个对象)
{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }
],
"authors": [
{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
{ "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }
],
"musicians": [
{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
]
}

这里最值得注意的是,能够表示多个值,每个值进而包含多个值。但是还应该注意,在不同的主条目(programmers、authors 和 musicians)之间,记录中实际的名称/值对可以不一样。JSON 是完全动态的,允许在 JSON 结构的中间改变表示数据的方式。

在 JavaScript 中使用 JSON

掌握了 JSON 格式之后,在 JavaScript 中使用它就很简单了。JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包。

将 JSON 数据赋值给变量

例如,(掌握javascript 的面向对象, 就不难理解)可以创建一个新的 JavaScript 变量,然后将 JSON 格式的数据字符串直接赋值给它:

{} 表示创建一个无类型对象

{

propertys  : statement,

propertys2  : statement2,

.........................................

propertysN  : statementN,

}

var people =

            { "programmers": [

            { "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },

            { "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },

            { "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }

            ],

            "authors": [

            { "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },

            { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },

            { "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }

            ],

            "musicians": [

            { "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },

            { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }

            ]

            }

            

这非常简单;现在 people 包含前面看到的 JSON 格式的数据。但是,这还不够,因为访问数据的方式似乎还不明显。

访问数据

尽管看起来不明显,但是上面的长字符串实际上只是一个数组;将这个数组放进 JavaScript 变量之后,就可以很轻松地访问它。实际上,只需用点号表示法来表示数组元素。所以,要想访问 programmers 列表的第一个条目的姓氏,只需在 JavaScript 中使用下面这样的代码:

people.programmers[0].lastName;

注意,数组索引是从零开始的。所以,这行代码首先访问 people 变量中的数据;然后移动到称为 programmers 的条目,再移动到第一个记录([0]);最后,访问 lastName 键的值。结果是字符串值 “McLaughlin”。

下面是使用同一变量的几个示例。

people.authors[1].genre   // Value is "fantasy"

            

            people.musicians[3].lastName  // Undefined. This refers to the fourth entry,

            and there isn't one

            

            people.programmers.[2].firstName // Value is "Elliotte"

            

利用这样的语法,可以处理任何 JSON 格式的数据,而不需要使用任何额外的 JavaScript 工具包或 API。

修改 JSON 数据

正如可以用点号和括号访问数据,也可以按照同样的方式轻松地修改数据:

people.musicians[1].lastName = "Rachmaninov";

            

在将字符串转换为 JavaScript 对象之后,就可以像这样修改变量中的数据。

转换回字符串

当然,如果不能轻松地将对象转换回本文提到的文本格式,那么所有数据修改都没有太大的价值。在 JavaScript 中这种转换也很简单:

String newJSONtext = people.toJSONString();

            

这样就行了!现在就获得了一个可以在任何地方使用的文本字符串,例如,可以将它用作 Ajax 应用程序中的请求字符串。

更重要的是,可以将任何 JavaScript 对象转换为 JSON 文本。并非只能处理原来用 JSON 字符串赋值的变量。为了对名为 myObject 的对象进行转换,只需执行相同形式的命令:

String myObjectInJSON = myObject.toJSONString();

            

这就是 JSON 与本系列讨论的其他数据格式之间最大的差异。如果使用 JSON,只需调用一个简单的函数,就可以获得经过格式化的数据,可以直接使用了。对于其他数据格式,需要在原始数据和格式化数据之间进行转换。即使使用 Document Object Model 这样的 API(提供了将自己的数据结构转换为文本的函数),也需要学习这个 API 并使用 API 的对象,而不是使用原生的 JavaScript 对象和语法。

最终结论是,如果要处理大量 JavaScript 对象,那么 JSON 几乎肯定是一个好选择,这样就可以轻松地将数据转换为可以在请求中发送给服务器端程序的格式。

 

 

LVGL与STM32的理解(基于正点原子资料) 我们要在lcd_draw_fast_rgb_color里面实现对屏的具体操作(也就是在这里实现自己的代码)。lcd_set_window、lcd_write_ram_prepare、lcd_wr_data这三个函数是本例程LCD屏的控制函数(也就是自己写的函数)。以下是stm32工程的文件目录,GUI_APP也可以忽略(细节参考正点原子例程):这里主要是再次加强一下印象,主要就是把。,里面的lcd_init()与lcd_display_dir是。它们都是LVGL的接口,按照它们的需求,把内容给它们即可。 阅读详情

相关推荐

OpenCV函数用法之calibrateCamera

参考链接:opencv中标定函数calibrateCamera_ychl87的专栏-优快云博客 世界坐标系的三维点投影到成像坐标系中的二维点的投影公式如下: 其中(X,Y,Z)为世界坐标系中的三维点; (u,v)为成像面坐标系中的二维点; A为相机的内参数矩阵:(cx,cy)为主光轴点,一般为图像的中心;fx和fy为焦距; [R|t]为相机的外参数矩阵:R为旋转矩阵,t为位移矩阵; 上述公式的简单推理过程如下 考虑到镜头畸变 其中,k1,k2,k3,k4,k5和k6为径向畸变,p1和.

tiger&sheep的博客 3万+

json数据格式

1,json有两种格式: ①对象格式:{'key1':obj,'key2':obj,'key3':obj...} ②数组/集合格式:[obj,obj,obj...] 2,数据在名称/值对中和 2,数由逗号分隔 JSON对象(只有基本类型) var json1={ "name":"pearl", "age":"24" } JSON对象(有基本类型,有对象) var...

mingyuli的博客 8809

PCL读取点云数据报错:Failed to find match for field ‘x‘/ ‘y‘/ ‘z‘.

原因:使用matlab生成的pcd文件,点云数据是双精度类型,pcl处理的点云数据是单精度类型。解决方案:使用matlab生成的点云坐标单精度化,然后在生成点云加以存储。

little_white138的博客 869

JSON数据格式

{“Name”:“张三”,“Age”:“18”,“Address”:“河南”,“BookList”:[{“BookName”:“js”},{“BookName”:“c#”}]}[{“Name”:“张三”,“Age”:“18”,“Address”:“河南”},{“Name”:“李四”,“Age”:“20”,“Address”:“河北”}]{“key”:“value”}最简单的json格式 花括号包裹表示这是一个JSON对象 通过键值对进行组合 key:value。JSON:是一种轻量级的数据传输格式。

m0_46454966的博客 1万+

UVC协议在STM32H7上的移植实战案例

手把手带你把UVC协议移植到STM32H7平台,重点解决USB高速枚举、视频流控制与YUV数据打包等关键问题。基于HAL库实现符合UVC 1.5规范的即插即用摄像头功能,让嵌入式设备轻松变身标准UVC视频源。

weixin_42437253的博客 397

2021哈工大网安837考研初试经验贴

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

weixin_41797880的博客 6523

学习JSON

一.JSON语法 JSON的全称是”JavaScript Object Notation”,意思是javascript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。 1.JSON的格式 JSON 数据的书写格式是键(名称)/值对。 JSON 键值对是用来保存 JS 对象的一种方式,和 JS 对象的写法也大同小异,键/值对包括字段名称(在双引号中),后面写一个冒号,然后是值。 JSO...

C_CXY2333的博客 1810

Quantum Espresso Hands-On实战训练(四)——PDOS计算与轨道分析

本文详细介绍了Quantum Espresso中PDOS计算与轨道分析的实战方法,重点解析了PDOS在材料电子结构研究中的核心价值,包括原子级分辨率、轨道级解析和自旋极化分析。通过具体案例和操作步骤,帮助读者掌握从输入文件准备到结果解读的全流程,并提供了高级分析技巧和疑难问题解决方案。

weixin_29211309的博客 504

JSON的三种格式

JSON的三种格式 一、 JSON的全称 JSON的全称是JavaScript Object Notation 二、为什么需要JSON JSON有三种格式,每一种写法都和JS中的数据类型很像,可以很轻松的和JS中的数据类型互相转换 三、JSON的三种格式 (一)、简单值的形式:JSON的简单值的格式对应着JS中的基础数据类型:数字 字符串 布尔值 注意事项: JSON中没有undefined JSON中的字符串必须使用双引号 JSON中是不能用注释的 (二)、对象形式:对应着JS中的对象 注意事项:

道阻且长,行则将至。 13万+

python爬虫:采集求职者简历信息并进行人才分析

通过 Python 爬虫抓取求职者简历信息并进行人才分析,可以帮助企业快速筛选和匹配人才。但在实施过程中,必须严格遵守法律法规,确保数据来源合法合规。如果需要更复杂的分析,可以结合自然语言处理(NLP)和机器学习技术,进一步挖掘数据价值。

数据知道的博客 1万+

46.qt quick-自定义非常好看的qml虚拟软键盘-支持换肤、动态加载移除语言(二)

在上章我们学习了45.qt quick-qml虚拟软键盘详解(一)_诺谦的博客-优快云博客 接下来我们便来自定义一款好看的qml软键盘.如下图所示: 支持背景更换、支持动图: 支持动态加载移除语言: 支持拖拽、自由缩小放大: 支持定位坐标: ...

抵抗时间扭曲,坚持做一件有意义的事 4674

Json数据格式

前言 Json(Javascript Object Notation)从Javascript派生而来,它是一种语言无关的数据格式,Json数据格式的文件以.json结尾。 Json数据格式由Douglas Crockford在2000年左右提出的。 RFC4627是描述了Json数据格式的第一份informational状态的RFC文档。2013年,ECMA-404标准化了Json;2017年,RFC8259正式成为Standard状态的RFC文档,标志着Json数据格式正式成为一种标准。另外,ECM

lengye7的博客 2万+

【网络教程】Ubuntu有线连接消失,无法联网怎么办!(亲测有效!)

文章目录问题描述解决方案 问题描述 今天打开Ubuntu,突然发现无法连接网络,并且打开设置,发现设置里面的网络已经没有了有线连接,只有VPN设置选项,如图 解决方案 按照下列的代码执行即可! # 关闭网路 service NetworkManager stop # 删除NetworkManager缓存文件 sudo rm /var/lib/NetworkManager/NetworkManager.state # 打开网络 service NetworkManager start 运行完

XiaoqiangClub的博客 1万+

在python中JSON数据格式的使用

JSON是一种数据格式,由美国程序设计师DouglasCrockford创建的,JSON全名是JavaScript Object Notation,由JSON英文全文字义我们可以推敲JSON的缘由,最初是为JavaScript开发的。这种数据格式由于简单好用被大量应用在Web开发与大数据数据库(NoSQL),现在已成为一种著名数据格式,Python与许多程序语言同时采用与支持。也由此在使用Python设计程序时,可以将数据以JSON格式存储,与其他程序语言的设计师。(摘自《python王者归来》)

码银的博客 3647

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

json数据格式的使用

刚开始做项目,在很多时候都用到了JSON数据格式,如果你了解JSON结构,那使用JSON进行数据传递简直是太美妙了,可以写出很实用美观可读性强的代码。而如果不知道JSON的结构而去解析JSON的话,那简直是噩梦。费时费力不说,代码也会变得冗余拖沓,得到的结果也不尽人意。感觉Json很重要,下面总结一下我对这种格式的理解! 1.   JSON是什么? JSON(JavaScript Object

littlerebeka的专栏 2万+

OV9734 DATASHEET,完整规格书

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

JSON数据格式的了解

我们常说的JSON是一种轻量级的数据格式。 JSON可以表示三种类型的值:简单值 、对象 、数组 JSON对象格式的书写: {   "name":"JSON",   "language":"javascript" } 注意:JSON属性名字一定要用双引号括起。 JSON数组格式: [100 , " JSON " , true] 注意:JSO...

alisa6655的博客 157

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

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

JSON数据格式详解

文章目录 JSON数据格式概念 JSON的简单数据 JSON对象 对象的属性也可以是JSON对象 JSON格式表示简单数组 对象数组 使用二维数组保存 二维数组 访问淘宝的接口也可以取得JSON格式的数据 将一个对象转换成JSON数据 将一个list集合转换成JSON数据 将map数据转换成JSON JSON数据格式概念 曾经一段时间里xml成为了互联网业界内的数据传输格式标准,但是有人对xml提出了质疑,认为xml数据格式比较繁杂,冗长等弊端,于是提出了很多解决方案 在2001年的时候JSON数据格式就

u011555996的博客 1758

Json数据格式的使用

Json数据格式的使用一.概念介绍二.语法介绍1. 基本定义规则2. 获取数据3. JSON数据和Java对象的相互转换I.Java对象转换JSONII.JSON转为Java对象 一.概念介绍 全称为:JavaScript Object Notation,JavaScript对象表示法。 用途: 1.json现在多用于存储和交换文本信息的语法 2.进行数据的传输 特点: 1.JSON 比 XML 更小、更快,更易解析。 二.语法介绍 1. 基本定义规则 * 数据在名称/值对中:json数据是由键值对构成的

qq_44932835的博客 6894

AJAX——JSON数据格式

JSON数据格式,前段时间一直听他们合作的说,但是不知道是什么,这次终于明白了,其实就是一种类似于XML的数据传输格式 。下边我从定义,语法,转换为JavaScript对象以及与XML的比较四个方面介绍一下。          一,先看一下定义吧,这是百度百科中的:          JSON(JavaScriptObject Notation) 是一种轻量级的数据交换格式。它基

学会改变自己——才能突破 1万+
上一篇: JSON数据格式介绍
下一篇: 一个java处理JSON格式数据的通用类
lijian820708
博客等级 码龄15年 3粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值