JSON教程:使用简单文件格式示例学习
什么是JSON?
JSON 是一种文件格式,用于以有组织且易于访问的方式存储信息。它的全称是 JavaScript Object Notation。它提供了人类可读的数据集合,可以进行逻辑访问。其书面编程代码的文件名扩展名为 .json
。JSON 的 Internet 媒体类型为 application/json,其统一类型标识符为 public.json。
为什么要使用JSON?
使用JSON的重要优点/好处如下:
- 提供对所有浏览器的支持
- 易于阅读和编写
- 语法简洁明了
- 您可以使用eval()函数原生解析JavaScript
- 易于创建和操作
- 得到所有主流JavaScript框架的支持
- 得到大多数后端技术支持
- JSON被JavaScript原生识别
- 它允许您通过网络连接传输和序列化结构化数据。
- 您可以将其与现代编程语言一起使用。
- JSON是文本,可以将其转换为JavaScript中的任何对象,然后将JSON发送到服务器。
JSON的历史
以下是构成JSON历史的重要里程碑:
- Douglas Crockford 在 2000 年初指定了 JSON 格式。
- 官方网站于 2002 年推出。
- 2005 年 12 月,Yahoo! 开始提供部分网络服务(采用 JSON 格式)。
- JSON 于 2013 年成为 ECMA 国际标准。
- 最新的 JSON 格式标准于 2017 年发布。
JSON的特性
易于使用 - JSON API 提供了高级的接口,有助于简化常用用例。
性能 - JSON 速度相当快,因为它占用的内存空间非常少,特别适合大型对象图或系统。
免费工具 - JSON 库是开源的,可以免费使用。
无需创建映射 - Jackson API 为许多要序列化的对象提供了默认映射。
纯净的 JSON - 创建干净、兼容且易于阅读的 JSON 结果。
依赖性 - JSON 库在处理过程中不需要任何其他库。
JSON 语法规则
JSON 语法的规则是:
- 数据应为名称/值对
- 数据应以逗号分隔
- 花括号 {} 用于存放对象
- 方括号 [] 用于存放数组
JSON中的数据类型
JSON中使用的重要数据类型包括:
数据类型 | 描述 |
---|---|
数字 | 它包括实数、整数或浮点数。 |
字符串 | 它包含任何文本或 Unicode 双引号字符,带有反斜杠转义。 |
布尔值 | 布尔数据类型表示 True 或 False 值。 |
Null | Null 值表示关联的变量没有任何值。 |
对象 | 它是由键值对组成的集合,键值对之间用逗号分隔,并用花括号 {} 括起来。 |
数组 | 它是由值组成的有序序列,值之间用逗号分隔。 |
数字
- 数字是双精度浮点格式,具体取决于其实现方法。
- 在JSON中,您不能使用十六进制和八进制格式。
下表显示了数字类型:
类型 | 描述 |
---|---|
整数 | 数字 1-9,以及 0。可以是正数或负数。 |
分数 | 分数,例如 3.14。 |
指数 | 指数,例如 e,e+。 |
语法
var json-object-name = { string : number_value,......}
示例
var obj = {salary: 2600}
字符串
它是由双引号括起来的 Unicode 字符序列,带有反斜杠转义。
下表显示了各种字符串类型:
类型 | 描述 |
---|---|
* | 用于双引号 |
/ | 用于斜杠 |
\ | 用于反斜杠 |
B | 用于添加退格符 |
F | 换页符 |
N | 用于创建新行 |
回车符 | 用于回车 |
T | 显示水平制表符 |
Unicode | 十六进制数字 |
语法
var json-object-name = { string : "string value",…..}
示例
var obj= {name: 'Andy'}
布尔值
它只存储 true 或 false 值。
语法
var json-object-name = {string : true/false, …..}
示例
var obj = {active: 'true'}
数组
- 它是由值组成的有序集合。
- 当键名是顺序整数时,您应该使用数组。
- 它应该包含在方括号 [] 中,并且元素之间用逗号 "," 分隔。
语法
[value, .......]
示例
显示存储多个对象的数组
{ "eBooks":[ { "language":"Pascal", "edition":"third" }, { "language":"Python", "edition":"four" }, { "language":"SQL", "edition":"second" } ] }
JSON 对象
JSON 对象是 JSON 中的一个实体,用花括号 {} 括起来。它以无序的名称/值对集编写,其中名称后面必须跟“:” (冒号),并且名称/值对需要用“,” (逗号) 分隔。当键名是任意字符串时,可以使用它。
语法
{ string : value, ….. }
示例
{ "id": 110, "language": "Python", "price": 1900, }
空白符
您可以在一对标记之间插入空白符。
示例
语法
{string:" ",….}
示例
var a = " Alex"; var b = "Steve";
JSON示例
提供的代码示例定义了如何使用 JSON 存储与 编程书籍 相关的以及版本和作者姓名信息。
{ "book":[ { "id":"444", "language":"C", "edition":"First", "author":"Dennis Ritchie " }, { "id":"555", "language":"C++", "edition":"second", "author":" Bjarne Stroustrup " } ] }
让我们通过另一个 JSON 文件示例来理解 JSON 格式。这里,JSON 定义了学生的姓、名和 id。
{ "student": [ { "id":"01", "name": "Tom", "lastname": "Price" }, { "id":"02", "name": "Nick", "lastname": "Thameson" } ] }
JSON的应用
以下是一些常见的 JSON 应用:
- 帮助您从服务器传输数据
- 示例 JSON 文件格式有助于传输和序列化所有类型的结构化数据。
- 允许您执行异步数据调用,而无需刷新页面
- 帮助您在服务器和 Web 应用程序之间传输数据。
- 它广泛用于基于 JavaScript 的应用程序,包括浏览器扩展和网站。
- 您可以使用 JSON 在服务器和 Web 应用程序之间传输数据。
- 我们可以将 JSON 与现代编程语言一起使用。
- 它用于编写基于 JavaScript 的应用程序,包括浏览器插件。
- Web 服务和 RESTful API 使用 JSON 格式获取公共数据。
JSON vs. XML
以下是 JSON vs. XML 的主要区别:
JSON | XML |
---|---|
JSON 对象有类型 | XML 数据是无类型的 |
JSON 类型:字符串、数字、数组、布尔值 | 所有 XML 数据都应该是字符串 |
数据作为 JSON 对象即可轻松访问 | XML 数据需要解析。 |
JSON 文件更易于人类阅读。 | XML 文件不太易于人类阅读。 |
JSON 受大多数浏览器支持。 | 跨浏览器 XML 解析可能很棘手 |
JSON 没有显示能力。 | XML 提供显示数据的能力,因为它是一种标记语言。 |
检索值很容易 | 检索值很困难 |
受许多 Ajax 工具包支持 | Ajax 工具包不支持。 |
JavaScript 的完全自动化反序列化/序列化方法。 | 开发人员必须编写 JavaScript 代码才能从 XML 进行序列化/反序列化。 |
对对象的原生支持。 | 对象必须通过约定来表示 - 主要是属性和元素的用法不当。 |
JSON 示例
以下是一个简单的 JSON 示例:
{ "student": [ { "id":"01", "name": "Tom", "lastname": "Price" }, { "id":"02", "name": "Nick", "lastname": "Thameson" } ] }
XML 示例
<?xml version="1.0" encoding="UTF-8" ?> <root> <student> <id>01</id> <name>Tom</name> <lastname>Price</lastname> </student> <student> <id>02</id> <name>Nick</name> <lastname>Thameson</lastname> </student> </root>
JSON不是什么?
- 示例 JSON 数据文件不是文档格式。
- 它不是标记语言。
- JSON 不提供通用序列化格式。
- 它不是递归或循环结构。
- 它也不是不可见结构。
JSON的缺点
以下是 JSON 的一些优点:
- 无命名空间支持,因此扩展性差
- 有限的 开发工具 支持
- 不支持正式语法定义
流行的JSON工具(插件)
以下是重要的 JSON 工具:
JSONLint
JSONLint 是一个开源项目,用作 JSON 的验证器和格式化器。它是一种轻量级数据交换格式。要验证您的 JSON 代码,请在 JSON 验证器工具中复制粘贴、直接输入或输入 URL。
JSON Editor Online
JSON Editor Online 是一个有用的基于 Web 的工具。它允许您编辑、查看和格式化 JSON。它在清晰、可编辑的 代码编辑器软件 中并排显示您的数据。
链接: https://jsoneditoronline.org/
JSON Minifier Tool(JSON 压缩工具)
这是一个有助于删除空格的工具,并生成占用空间最小的 JSON 代码。
链接: https://www.browserling.com/tools/json-minify
JSON to XML Converter(JSON转XML转换器)
JSON to XML converter 是一个简单有效的工具,可以帮助您转换 JSON 代码。
链接: https://codebeautify.org/jsontoxml
JSON Formatter(JSON格式化工具)
JSON formatter 通过格式化 JSON 数据,使其易于人类阅读和调试,来帮助您解决问题。
链接:https://jsonformatter.curiousconcept.com/
摘要
- JSON 方法用于以有组织且易于访问的方式存储信息。
- JSON 代表 JavaScript Object Notation。
- JSON 为所有浏览器提供了支持,并且被许多语言所提供。
- Douglas Crockford 在 2000 年初指定了 JSON 格式。
- JSON API 提供高级接口,有助于简化常用用例。
- 编写 JSON 系统的关键规则是数据应以名称/值对编写。
- Number、String、Boolean、Null、Object 和 Array 是 JSON 中使用的重要数据类型。
- 它帮助您从服务器传输数据。
- JSON 对象有类型,而 XML 数据是无类型的。
- JSON 不是文档格式。
- 无命名空间支持,因此扩展性差
- JSONLint 是一个开源项目,用作 JSON 的验证器和格式化器。