JSON 数据格式
wps 编写解析json格式的数据案例
wps 编写解析json格式的数据案例
在数据处理和解析中,json 格式的数据成为了一种常见的数据格式。它具有数据结构清晰、易于阅读和编写的特点,被广泛应用在 Web 开发、移动应用程序开发和数据交换等领域。wps 作为一款功能强大的办公软件,也提供了对 json 数据进行解析和处理的功能,本文将通过一个案例,详细介绍如何利用 wps 对 json 格式的数据进行解析和处理。
1. 准备 json 数据
我们准备一段简单的 json 数据作为例子,例如:
```json
{
"name": "张三",
"age": 25,
"gender": "男",
"address": {
"city": "北京",
"street": "朝阳区"
},
"skills": ["Java", "Python", "C++"]
}
上面的 json 数据包含了一个人的基本信息,包括尊称、芳龄、性别、位置区域和技能等内容。
2. 创建wps文档
打开 wps 文档,在空白处输入上面准备的 json 数据。
3. 解析 json 数据
在 wps 中,可以利用内置的函数对 json 数据进行解析。在本例中,
我们可以使用 wps 中的 JSON.GET 函数来获取 json 数据中指定键对
应的值,具体步骤如下:
3.1 我们可以使用JSON.GET 函数获取尊称、芳龄和性别等基本信息,比如在单元格 A1 中输入以下公式:
```
=JSON.GET(A$1,"$.name")
=JSON.GET(A$1,"$.age")
=JSON.GET(A$1,"$.gender")
在MySQL中使用JSON格式存储和查询数据
在MySQL中使用JSON格式存储和查询数据
随着互联网的快速发展和数据的爆炸式增长,数据存储和查询变得愈发重要。在传统关系型数据库中,通常使用表格的形式来存储和管理数据,但是随着数据的复杂性增加,表格结构的缺点也逐渐显现出来。为了更好地存储和查询这些复杂数据,MySQL引入了对JSON格式的支持。
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它具有良好的可读性和易于解析性,已经成为广泛使用的数据格式之一。使用JSON格式存储和查询数据在MySQL中变得更加方便和灵活。
1. JSON类型
在MySQL中,可以使用JSON类型来存储和处理JSON格式的数据。JSON类型支持各种操作,包括插入、更新、查询和删除。创建一个JSON类型的列非常简单,只需在数据表中指定列的数据类型为JSON即可。
例如,在一个名为"users"的数据表中,可以创建一个名为"info"的JSON类型的列来存储用户的详细信息。这样,每个用户的详细信息都可以以JSON格式保存在该列中。
2. 存储JSON数据
在MySQL中存储JSON数据非常简单。可以使用INSERT语句向表中插入一条包含JSON数据的记录。例如,可以执行以下INSERT语句来插入一条用户的详细信息数据:
```sql
INSERT INTO users (info) VALUES ('{"name": "John", "age": 25, "email":
"****************"}');
```
在上面的例子中,JSON数据'{"name": "John", "age": 25, "email":
webservice 数据格式样例
一、介绍WebService数据格式
在Web应用程序开发中,WebService是一种基于Web的服务,通过HTTP协议提供外部应用程序访问数据和功能的途径。WebService 数据格式是指在WebService中传输数据的结构和规范。常用的WebService数据格式有XML、JSON等。
二、XML数据格式样例
```xml
<customer>
<id>001</id>
<name>张三</name>
<age>28</age>
<address>北京市朝阳区</address>
</customer>
```
在上面的示例中,<customer>是根元素,其中包含了<id>、
<name>、<age>和<address>等子元素。每个子元素用来存储不同的信息,通过XML的标签和属性来描述数据的结构和内容。
三、JSON数据格式样例
```json
{
"id": "001",
"name": "张三",
"age": 28,
"address": "北京市朝阳区"
}
```
在JSON数据格式中,数据以键值对的形式存储,用大括号{}括起来表示对象。每个键值对之间用逗号分隔,键值对的键和值之间用冒号分隔。JSON数据格式相比XML更加简洁,易于阅读和解析。
四、WebService数据格式选择建议
1. 对于复杂的数据结构或者需要进行深层次的数据嵌套时,推荐使用XML数据格式。XML能够清晰地描述数据的层次结构和关系,适用于复杂的数据格式要求。
前后端分离返回的数据格式
前后端分离返回的数据格式
前后端分离是一种常见的软件架构模式,它将前端和后端的开发分离,使它们能够独立进行开发和部署。在前后端分离架构中,前端和后端之间通过接口进行数据交换。因此,返回的数据格式通常是通过接口进行定义和约定的。
在前后端分离的架构中,常见的返回数据格式包括JSON (JavaScript Object Notation)和XML(eXtensible Markup Language)。JSON是一种轻量级的数据交换格式,它易于阅读和编写,也易于解析和生成。JSON格式的数据通常由键值对组成,适合于在Web应用程序中进行数据交换和传输。另一种常见的返回数据格式是XML,它是一种标记语言,用于传输和存储数据。XML格式的数据通过标签来描述数据的结构和内容,适合于复杂的数据交换和处理场景。
除了JSON和XML之外,还有一些其他的返回数据格式,例如YAML(YAML Ain't Markup Language)和Protocol Buffers等。这些格式在特定的场景和需求下也被广泛应用。
在实际应用中,前后端开发团队会根据项目需求和约定统一数
据交换格式,以便前后端能够顺利地进行数据交互。同时,为了提高数据传输的效率和安全性,还可以采用压缩算法和加密算法对返回的数据进行处理。
总的来说,前后端分离架构中返回的数据格式通常是JSON和XML,它们通过接口进行定义和约定,以实现前后端之间的数据交换和传输。同时,开发团队还会根据具体需求选择合适的数据格式,并采取相应的数据处理方式以确保数据传输的效率和安全性。
JSON 数据格式
JSON 数据格式
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。
基础结构
JSON建构于两种结构:
1. “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组(associative array)。
2. 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
基础示例
简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从Web 客户机传递给服务器端程序。这个字符串看起来有点儿古怪,但是JavaScript 很容易解释它,而且 JSON 可以表示比"名称 / 值对"更复杂的结构。例如,可以表示数组和复杂的对象,而不仅仅是键和值的简单列表。
表示名称 / 值对
按照最简单的形式,可以用下面这样的 JSON 表示 "名称 / 值对" :{ "firstName": "Brett" }
这个示例非常基本,而且实际上比等效的纯文本 "名称 / 值对" 占用更多的空间:firstName=Brett
人大金仓 json格式解析
人大金仓 json格式解析
人大金仓(RDC)是一种基于Json格式的数据存储和查询系统。它采用了一种简单而高效的方式来解析Json数据,使得
对于任何规模的数据集,都可以快速、准确地进行查询和分析。本文将介绍人大金仓的Json格式解析方法,并探讨其在实际
应用中的优势和潜在问题。
一、Json格式解析的基本原理
Json(JavaScript Object Notation)是一种轻量级的数据交换格式,以易于阅读和编写的方式来表示结构化的数据。由于
Json格式简单明了,并且广泛应用于网页和移动应用程序中,因此Json解析成为了许多数据存储和查询系统的常见需求。
人大金仓的Json格式解析方法基于两个基本原理:先采用分
层递归的方式解析Json数据,然后将解析结果存储在内存中
以提高查询效率。
1.1 分层递归解析
Json数据的结构通常由键值对组成,其中值可以嵌套其他
Json对象或数组。为了解析Json数据,人大金仓采用了分层
递归的方式。它将Json数据分解为多个层级,每个层级负责
解析一个键值对。当解析到嵌套的Json对象或数组时,递归
地调用相同的解析函数,直到解析完成。
例如,给定以下Json数据:
{
"name": "John",
"age": 30,
"address": {
"street": "123 Street",
"city": "New York"
},
"hobbies": ["reading", "sports"]
}
人大金仓的Json解析器将首先解析顶层的键值对:"name"和"John"、"age"和30、"address"和嵌套的Json对象、"hobbies"和嵌套的Json数组。然后,对于嵌套的Json对象,会再次进行递归解析;对于嵌套的Json数组,可以将其视为一个包含多个Json对象的数组。
JSON:结构化数据格式
JSON:结构化数据格式
JSON是javascript的⼦类,也是作为更好的互联⽹传输结构化数据格式逐渐取代XML,因此要理解JSON,重要的是理解它是⼀种数据格式,不是⼀种编程语⾔。
语法
//javascript
var object = {
"name":"lihua",
"age":"20",
"gender":undefined
}
//JSON
{
"name":"lihua",
"age":"20",
}
由于JSON是数据格式,所以没有变量的概念,同时键值必须使⽤双引号。
JSON的stringify与parse⽅法(序列化与解序)
早期的JSON解析器基本上都使⽤了eval()函数,但是可能会执⾏恶意代码(eval函数可以解析,解释并返回js对象。ECMASCRIPT 5再后来规范了JSON⾏为,定义了全局对象JSON,并添加了两个JSON⽅法:stringify()和parse()。
var person = {
name:"lihua",
age:"18",
hobby:[
"basketball",
"badminton"
],
action:function(){
alert("help")
}
}
var jsonText = JSON.stringify(book)
//{"name":"lihua","age":"18","hobby":["basketball","badminton"]}
var jsText = JSON.parse(jsonText);
在序列化时,函数与原型对象成员都将被忽略(JSON只接受两种复杂类型对象与数组),值为undefined的属性值也会被跳过。
json数据格式
1. 什么是 JSON
JSON概念很简单,JSON 是一种轻量级的数据格式,他基于javascript 语法的子集,即数组和对象表示。由于使用的是 javascript 语法,因此JSON 定义可以包含在javascript 文件中,对其的访问无需通过基于XML 的语言来额外解析。不过在使用 JSON 之前,很重要的一点是理解 javascript 中数组及对象字面量
的特殊语法。
1.1 数组字面量
数组字面量,是用一对方括号括起一组用逗号隔开的 javascript 值,例如:
var aNames=["hello", 12, true , null];
1.2 对象字面量
对象字面量,是通过两个花括号来定义的。在花括号内可以放置任意数量的“名称-值”对,定义格式字符
串值”。除了最后一行外,每个“名称-值”对后必须有一个逗号(这与Perl 中的联合数组的定义有些类似)。例如:
var oCar = {
"color": "red",
"doors" : 4,
"paidFor" : true
};
1.3 混合字面量
我们可以混用对象和数组字面量,来创建一个对象数组,或一个包含数组的对象。例如:
{comments:[
{
id:1,
author:"someone1",
url:"",
content:"hello"
},
{
id:2,
author:"someone2",
url:"",
content:"hello"
},
{
id:3,
author:"someone3",
url:"",
content:"hello"
}
]};
常用数据标注格式及工具
常用数据标注格式及工具
常用的数据标注格式和工具如下:
数据标注格式:
CSV:逗号分隔值(Comma-Separated Values)格式,是一种通用的数据交换格式,可用于存储表格数据。
JSON:JavaScript Object Notation(JSON)格式,是一种轻量级的数据交换格式,易于阅读和编写。
XML:可扩展标记语言(Extensible Markup Language)格式,是一种用于存储和传输数据的标记语言。
YAML:YAML Ain't Markup Language(YAML)格式,是一种人类可读的数据序列化标准。
数据标注工具:
LabelImg:一款用Python编写的图形图像标注工具,支持2D矩形框、目标检测等标注类型,可以用于进行目标检测项目的标注工作。
LabelIme:支持对象检测、图像语义分割数据标注,实现语言为Python与QT。支持导出VOC 与COCO格式数据实例分割。
RectLabel:支持导出YOLO、KITTI、COCOJSON与CSV格式,读写Pascal VOC格式的XML文件。
其他标注工具:如Labelme、OCR识别工具等。
json用法
json用法
一、什么是JSON
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript语言的子集,可以被多种编程语言使用,包括C、
C++、C#、Java、Perl、Python等。JSON格式的数据比XML格式的数据更加简洁和易于阅读和编写。
二、JSON的基本语法
1. JSON对象
JSON对象是由一对花括号{}包含起来的键值对列表,每个键值对之间用逗号分隔。键和值之间用冒号分隔。
例如:
{
"name": "Tom",
"age": 20,
"gender": "male"
2. JSON数组
JSON数组是由一对方括号[]包含起来的值列表,每个值之间用逗号分隔。
例如:
[
{
"name": "Tom",
"age": 20,
"gender": "male"
},
{
"name": "Lucy",
"age": 18,
"gender": "female"
}
]
3. JSON字符串
JSON字符串是由双引号""包含起来的任意Unicode字符序列,反斜杠\可以用来转义特殊字符。
例如:
"Hello, world!"
4. JSON数值
JSON数值可以是整数或浮点数。
例如:
100
3.14
5. JSON布尔值
JSON布尔值只有两个取值:true和false。
6. JSON空值
JSON空值表示为null。
三、JSON的使用
1. JSON解析
在JavaScript中,可以使用JSON.parse()方法将JSON字符串解析为JavaScript对象。
例如:
var jsonStr = '{"name": "Tom", "age": 20, "gender": "male"}'; var jsonObj = JSON.parse(jsonStr);
xml和json的应用场景
xml和json的应用场景
XML和JSON是两种常用的数据交换格式,在不同的应用场景下有各自的优势和适用性。本文将分别探讨XML和JSON的应用场景,并对它们的特点和优势进行比较。
XML的应用场景:
1. 数据存储和传输:XML被广泛用于存储和传输结构化数据,例如配置文件、日志文件、文档标记等。由于XML的标签结构清晰,易于解析和处理,因此在需要保持数据结构的完整性和层次关系的场景下,XML是一个很好的选择。
2. Web服务:XML作为SOAP协议的基础,被用于实现各种Web 服务。SOAP(Simple Object Access Protocol)是一种基于XML的消息传递协议,用于在不同的系统之间进行通信和数据交换。
3. 数据库管理:XML可以作为数据库中的一种存储格式,用于存储和查询结构化数据。许多数据库系统支持XML格式的数据存储和查询,提供了更灵活的数据管理方式。
4. 文档标记:XML最初被设计用于表示文档结构,因此在需要对文档进行标记和结构化的场景下,XML是一个非常合适的选择。例如,HTML就是一种基于XML的标记语言,用于表示网页的结构和内容。JSON的应用场景:
1. Web开发:JSON由于其轻量级和易于解析的特点,被广泛应用于Web开发中。在前端和后端之间进行数据交换时,JSON是一种非常
方便和高效的数据格式。许多Web API都采用JSON格式来返回数据。
2. 移动应用:由于JSON数据格式的轻量级和易于处理,它在移动应用开发中也有着广泛的应用。移动应用通常需要频繁地与服务器进行数据交换,而JSON正是一种很好的选择。
json格式在线转换
json格式在线转换
JSON格式在线转换
摘要:
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛应用于前后端数据传输和存储。JSON格式在线转换工具是一种方便用户将不同数据类型转换为JSON格式或将JSON格式转换为其他数据类型的工具。本文将介绍JSON格式在线转换的原理、功能以及常见的转换方法。
1. 引言
1.1 JSON格式简介
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它以易于阅读和编写的方式表达结构化数据。JSON基于JavaScript的一种子集,但可被多种编程语言使用,包括Python、Java等。它逐渐成为现代应用程序中常用的数据传输和存储格式。
1.2 在线转换工具的作用
JSON格式在线转换工具是一种方便用户将不同数据类型转换为JSON格式或将JSON格式转换为其他数据类型的工具。它可以帮助开发人员快速地处理和转换不同数据类型之间的转换需求,节省了开发时间和精力。
2. JSON格式在线转换的原理
JSON格式在线转换工具的实现原理主要包括以下几个步骤:
2.1 数据解析
JSON格式在线转换工具首先需要将输入的数据进行解析,无论是将其他数据格式转换为JSON格式还是将JSON格式转换为其他数据格式,都需要对数据进行解析。解析的目的是将输入数据转换为统一的数据结构,方便后续的转换操作。
2.2 数据转换
在解析完成后,JSON格式在线转换工具将执行数据转换的操作。如果是将其他数据格式转换为JSON格式,转换过程将涉及将数据转换为JSON对象或数组的操作。如果是将JSON格式转换为其他数据格式,则需要将JSON对象或数组转换为对应的数据格式。
mysql 解析json的方法
mysql 解析json的方法
MySQL是一种流行的关系型数据库管理系统,但在处理非关系型的数据时,如JSON格式的数据,MySQL提供了一些方法来解析和处理JSON 数据。本篇文章将一步一步回答关于MySQL解析JSON的方法。
第一步:理解JSON数据格式
在学习如何解析JSON之前,首先需要了解JSON数据的基本结构。JSON (JavaScript Object Notation)是一种轻量级的数据交换格式,常用于在客户端和服务器之间传递数据。它使用键/值对的方式存储数据,并且数据项之间使用逗号进行分隔。以下是一个简单的JSON示例:
{
"name": "John",
"age": 30,
"city": "New York"
}
这个JSON对象有三个键/值对,分别是"name"、"age"和"city"。其中,键是字符串类型,值可以是字符串、数字、数组、对象等。
第二步:通过JSON_EXTRACT函数获取JSON数据的值
MySQL提供了一个JSON_EXTRACT函数来获取JSON数据的值。该函
数接受两个参数:JSON对象和要提取的键。例如,假设有一个名为"person"的表,其中包含一个名为"info"的JSON列,可以使用以下语句获取JSON对象中"name"的值:
SELECT JSON_EXTRACT(info, '.name') AS name FROM person;
在这个例子中,''表示根节点,'.name'表示要提取的键。使用AS关键字将返回的值命名为"name"。
第三步:使用JSON_UNQUOTE函数移除JSON值的引号
xml和json的应用场景
xml和json的应用场景
XML和JSON的应用场景
XML和JSON都是常用的数据交换格式,它们在不同的场景下有着各自的应用优势。本文将从XML和JSON的定义、优劣势以及应用场景等方面进行探讨。
一、XML和JSON的定义
XML,全称为可扩展标记语言,是一种用于表示数据的标记语言,它是一种结构化的文本格式,具有良好的可读性和灵活性。XML的数据结构是一棵树形结构,由一系列的元素和属性组成,可以表示复杂的结构化数据。
JSON,全称为JavaScript对象表示法,是一种轻量级的数据交换格式,它是一种文本格式,具有良好的可读性和简洁性。JSON的数据结构是一个键值对集合,由多个键值对组成,每个键值对表示一个属性。JSON的数据格式与JavaScript中的对象格式类似,因此可以直接在JavaScript程序中使用。
二、XML和JSON的优劣势
1. XML的优势
①良好的可读性和可扩展性:XML的数据结构清晰,易于阅读和理
解,同时支持自定义标签,可以灵活扩展。
②适用于复杂数据结构:XML可以表示复杂的结构化数据,支持嵌套和层级关系,可以满足对数据结构的高度要求。
③支持多语言:XML支持多种语言,可以用不同的字符集表示数据,能够满足国际化应用的需求。
2. XML的劣势
①文件体积大:XML的标签较多,文件体积相对较大,传输效率较低。
②解析速度慢:XML的解析速度较慢,因为需要进行结构化解析和验证,处理效率较低。
3. JSON的优势
①文件体积小:JSON的数据格式简洁,文件体积较小,传输效率较高。
android中常用的json,xml,gson解析的原理
android中常用的json,xml,gson解析的原理在Android应用程序开发中,我们常常需要处理各种数据格式,其中JSON和XML是最常用的两种。另外,随着数据处理的复杂度增加,我们还需要使用一些工具库如GSON来解析和生成这些数据格式。本文将详细介绍Android中常用的JSON、XML、GSON解析的原理。
一、JSON解析原理
JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Android中,我们通常使用各种库来解析JSON数据,其中最常见的是org.json和Gson。
.json解析原理
org.json是一个轻量级的JSON解析库,它提供了简单易用的API来解析和生成JSON数据。在Android中,我们可以通过以下步骤使用org.json库解析JSON数据:
(1)引入org.json库。
(2)创建JSONObject或JSONArray对象,并使用API将JSON数据转换为该对象。
(3)使用API获取JSONObject或JSONArray中的数据。
org.json解析速度快,且提供了丰富的API来操作JSON数据,但是需要注意的是,org.json库只支持到JSON2019版本为止的JSON语法。
2.Gson解析原理
Gson是Google开发的一个Java库,用于将Java对象转换为JSON格式的数据,以及将JSON数据转换回Java对象。在Android中,我们通常使用Gson库来解析JSON数据。Gson库提供了简单易用的API,可以方便地将Java对象转换为JSON格式的数据,同时也可以将JSON数据转换为Java对象。
标准json格式
标准json格式
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析和生成。在标准的JSON格式中,数据以键值对的形式存在,键值对之间用逗号分隔,整个对象用大括号{}括起来。
JSON的标准格式包括以下几个方面:
1. 数据类型,JSON支持的数据类型包括字符串、数字、布尔值、数组、对象和null。字符串需要用双引号括起来,数字不需要引号,布尔值和null同样不需要引号。
2. 对象,对象是一种无序的键值对集合,键值对之间用逗号分隔。键和值之间用冒号分隔。对象以大括号{}括起来。
3. 数组,数组是一种有序的值的集合,值之间用逗号分隔。数组以中括号[]括起来。
4. 嵌套,JSON格式支持对象和数组的嵌套,可以在对象中包含数组,也可以在数组中包含对象。
5. 空白字符,JSON格式中允许使用空白字符(空格、制表符、换行符等)来增加可读性,但在解析时会忽略这些空白字符。
6. 逃逸字符,JSON格式中使用反斜杠\来转义特殊字符,比如
双引号、反斜杠、换行符等。
7. 数据格式严格,JSON格式要求所有的字符串必须使用双引
号括起来,所有的键名也必须使用双引号括起来。
标准的JSON格式示例:
```json。
{。
"name": "Alice",。
"age": 25,。
"isStudent": true,。
"hobbies": ["reading", "running", "cooking"],。 "address": {。
"city": "New York",。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JSON 数据格式
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。
基础结构
JSON建构于两种结构:
1. “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组(associative array)。
2. 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
基础示例
简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从Web 客户机传递给服务器端程序。这个字符串看起来有点儿古怪,但是JavaScript 很容易解释它,而且 JSON 可以表示比"名称 / 值对"更复杂的结构。例如,可以表示数组和复杂的对象,而不仅仅是键和值的简单列表。
表示名称 / 值对
按照最简单的形式,可以用下面这样的 JSON 表示 "名称 / 值对" :{ "firstName": "Brett" }
这个示例非常基本,而且实际上比等效的纯文本 "名称 / 值对" 占用更多的空间:firstName=Brett
但是,当将多个"名称 / 值对"串在一起时,JSON 就会体现出它的价值了。首先,可以创建包含多个"名称 / 值对"的记录,比如:
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" }
从语法方面来看,这与"名称 / 值对"相比并没有很大的优势,但是在这种情况下 JSON 更容易使用,而且可读性更好。例如,它明确地表示以上三个值都是同一记录的一部分;花括号使这些值有了某种联系。
表示数组
当需要表示一组值时,JSON 不但能够提高可读性,而且可以减少复杂性。例如,假设您希望表示一个人名列表。在 XML 中,需要许多开始标记和结束标记;如果使用典型的名称 / 值对(就像在本系列前面文章中看到的那种名称 / 值对),那么必须建立一种专有的数据格式,或者将键名称修改为
person1-firstName这样的形式。
如果使用 JSON,就只需将多个带花括号的记录分组在一起:
{ "people": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "bbbb"},
{ "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }
]}
这不难理解。在这个示例中,只有一个名为 people的变量,值是包含三个条目的数组,每个条目是一个人的记录,其中包含名、姓和电子邮件地址。上面的示例演示如何用括号将记录组合成一个值。当然,可以使用相同的语法表示多个值(每个值包含多个记录):
{ "programmers": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "bbbb" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }
],
"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 结构的中间改变表示数据的方式。
在处理 JSON 格式的数据时,没有需要遵守的预定义的约束。所以,在同样的数据结构中,可以改变表示数据的方式,甚至可以以不同方式表示同一事物。
格式应用
掌握了 JSON 格式之后,在 JavaScript 中使用它就很简单了。JSON 是JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包。
将 JSON 数据赋值给变量
例如,可以创建一个新的 JavaScript 变量,然后将 JSON 格式的数据字符串直接赋值给它:
var people = { "programmers": [ { "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "bbbb" }, { "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" } ],
"authors": [