这是我参与8月更文挑战的第21天,活动详情查看:8月更文挑战
如果要在互联网上传输数据,那么可用的数据格式有很多,那么定义一种通用的标准用于数据传输,就尤为重要。
一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。 在 JSON 之前,XML 曾经是这一标准的霸主,但是 XML 过于冗余而被其他方案替代,今天,就让我们聊聊 JSON 格式的一些知识,如果你是开发新手,这篇文章比较适合你。
语法
JSON 可以表示三种类型的数据
- 简单类型:字符串、数值、布尔、null
- 对象
- 数组 相对于 XML,JSON 更轻量、更快且更易解析。
语法要点:
- 数据在名称/值对中
- 由逗号分割
- 大括号
{}保存对象 - 中括号
[]保存数组 JSON 只能用来表示结构化的数据,本身是不具备变量、函数和实例的概念的,也不是 JavaScript 语言的专有特性。示例:
let my = {
name: "Sam",
age: 25
};
// JSON
{
"name": "Sam",
"age": 25
}
解析和序列化
咋一看 JSON 的格式和 JavaScript 语法差不多的,所以这一格式被迅速的流行起来,JSON 的全称指的就是 JavaScript 对象表示法(JavaScript Object Notation)。那么一段 JSON 字符串怎么被解析和序列化呢,JavaScript 的实现如下:
JSON.parse(); // 解析
JSON.stringify(); // 序列化
其中,stringify还可以接收两个参数,用于控制序列化的方式,第一个是过滤器,可以是数组或者函数,第二个是用于缩进结果。示例:
- value:必填,需要序列化的数据
- replacer:可选,过滤器,用于转换结果的函数或数组。
- space:可选,缩进,文本添加缩进、空格和换行符,如果 space 是一个数字,则返回值文本在每个级别缩进指定数目的空格,如果 space 大于 10,则文本缩进 10 个空格。space 也可以使用非数字
let my = {
name: "Sam",
age: 25
sex: 1,
};
let jsonText = JSON.stringify(my, ["name", "sex"]);
// "{\"name\":\"Sam\",\"sex\":1}"
在线 JSON 解析和序列化:www.json.cn