写给新手的 JSON 语法基础知识点

428 阅读3分钟

这是我参与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

欢迎阅读其它文章