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 几乎肯定是一个好选择,这样就可以轻松地将数据转换为可以在请求中发送给服务器端程序的格式。

 

 

计算机组成原理课设 计算机组成原理课程设计 阅读详情

相关推荐

Nvidia Jetson AGX Orin 如何进入 Recovery Mode(刷机注意事项)

Jetson Orin 如何进入Recovery mode + 刷机注意事项

Pandako's Blog 1万+

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

为什么你的SiC MOSFET仿真不准?可能是离子注入的‘沟道效应’在捣鬼(Silvaco BCA模块详解)

本文深入分析了SiC MOSFET仿真中离子注入沟道效应的关键影响,揭示了Silvaco BCA模块在模拟SiC晶向和角度参数时的核心设置要点。通过详细解析晶圆偏切与注入角度的等效关系,提供优化MOSFET沟道区注入仿真的五步实战方法,帮助工程师将阈值电压仿真误差从26%降低到5%以内。

weixin_26789847的博客 410

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万+

侧杆试验 - 高速撞击 - 显式动力学 - ANSYS Workbench

显式动力学是一种时间积分方法,用于在速度很重要时执行动态模拟。显式动力学考虑快速变化的条件或不连续事件,例如自由落体、高速撞击和施加的负载。由于这些“非线性动力学”已集成到模拟中,因此显式动力学是模拟高度瞬态物理现象的首选。有些侧面碰撞是指车辆侧向撞上路边的坚硬物体,如树木或电线杆。这通常是由于驾驶员失去控制、超速、误判拐角或在湿滑路面上打滑造成的。

jianqimingtian的博客 1289

光谱数据计算CIE值(三刺激值、CIE1931、CIE1976、CCT)软件

软件界面如下,免安装,拷贝即可使用 导入光谱数据即可计算三刺激值、CIE1931、CIE1976、CCT CIE1931、CIE1976色坐标图形只管显示 导入的光谱数据格式如下,txt文本 波长380到780,间隔1nm 注意:缺省的数据默认写0即可 下面为一些CIE相关介绍: CIE(国际发光照明委员会):原文为Commission Internationale de L’Eclairage(法)或International Commission on Illumination(英)。这个委员会创

业余程序员小徐的博客 2万+

学习JSON

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

C_CXY2333的博客 1810

从入门到精通:3D视觉与SLAM实战全流程 mastery 教程

本文系统介绍了3D视觉与SLAM技术的应用前景、核心技术和实战路径。3D视觉通过RGB-D相机、激光雷达等传感器获取环境三维信息,SLAM技术实现自主定位与地图构建,二者结合广泛应用于自动驾驶、机器人导航等领域。文章详细拆解了点云处理、视觉里程计、回环检测等关键技术,并提供了ORB-SLAM2算法复现、语义SLAM开发的实战教程,涵盖硬件选型、环境配置到代码实现全流程。最后规划了从入门到专家的学习路径,推荐了相关书籍、开源项目和数据集资源,为读者掌握这一前沿技术提供了完整指南。

m0_71589036的博客 135

JSON的三种格式

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

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

【大模型+知识图谱】大模型与知识图谱融合:技术演进、实践应用与未来挑战

大模型与知识图谱的融合不是简单拼接,而是认知智能的范式重构。当符号主义的精确性与连接主义的泛化能力深度交织,我们正站在通向可信AGI的关键路口。正如OpenKG技术委员会王昊奋教授所言:“2025年将是图模协同从技术探索走向规模落地的分水岭”。参考文献OpenKG 2024年度报告(同济大学王昊奋)大型语言模型与知识图谱协同研究综述(海豚实验室,2024)知识图谱与大模型结合方法概述(黄巍,2023)图模互补:知识图谱与大模型融合综述(优快云,2024)

知识靠谱的博客 1092

实时数字人SoulX-FlashHead 音视频不对齐解决

【代码】实时数字人SoulX-FlashHead 音视频不对齐解决。

jacke121的专栏 201

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万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

在python中JSON数据格式的使用

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

码银的博客 3647

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

json数据格式的使用

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

littlerebeka的专栏 2万+

JSON数据格式的了解

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

alisa6655的博客 157

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、付费专栏及课程。

余额充值