JSON教程:使用简单文件格式示例学习

什么是JSON?

JSON 是一种文件格式,用于以有组织且易于访问的方式存储信息。它的全称是 JavaScript Object Notation。它提供了人类可读的数据集合,可以进行逻辑访问。其书面编程代码的文件名扩展名为 .json。JSON 的 Internet 媒体类型为 application/json,其统一类型标识符为 public.json。

为什么要使用JSON?

使用JSON的重要优点/好处如下:

  • 提供对所有浏览器的支持
  • 易于阅读和编写
  • 语法简洁明了
  • 您可以使用eval()函数原生解析JavaScript
  • 易于创建和操作
  • 得到所有主流JavaScript框架的支持
  • 得到大多数后端技术支持
  • JSON被JavaScript原生识别
  • 它允许您通过网络连接传输和序列化结构化数据。
  • 您可以将其与现代编程语言一起使用。
  • JSON是文本,可以将其转换为JavaScript中的任何对象,然后将JSON发送到服务器。

JSON的历史

History of 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。

链接: https://jsonlint.com

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 的验证器和格式化器。