JSON 快速理解
JSON的英文全称是 JavaScript Object Notation 即 JS对象表示法 ,是一种轻量级的数据交换格式。也就是说,JSON不是一种语言,而是一种数据格式的规范。它对其环境的依赖比较小,JSON解释器和JSON库支持许多不同的编程语言。
JSON简洁清晰并具有层次结构,因此,JSON成为理想的数据交换语言,大多应用在网络数据传输中。JSON易于人阅读和编写,同时也易于机器解析和生成,可以有效地提升网络传输效率。
在早期,XML格式的文件被用来传输数据(这也是XML的设计初衷),其结构大致与HTML文件相似,因此XML文件也具有层次结构(或者说树结构)。但是,由于XML格式文件体积大、读取复杂、浪费时间,后期逐渐被JSON取缔。而现在XML文件被作为配置文件来使用
JSON文本格式在语法上与创建JavaScript对象的代码相同。由于这种相似性,无需解析器,JavaScript程序能够用JSON数据来生成原生的JavaScript对象。
JSON语法是JavaScript语法的子集。
一、JSON允许数据类型
类型 | 介绍 |
---|---|
数字 | 整数或浮点数 |
字符串 | 在双引号中 |
逻辑值 | true或false |
数组 | 在方括号中 |
对象 | 在花括号中 |
null | 空值 |
二、JSON语法规则
数据使用键值对的方式(键需要被包裹在双引号中),每条数据由逗号分割
大括号保存对象,例如
{"Name":"MicDevelop","Number":1}
方括号保存数组,例如
["MicDevelop",1]
三、JSON文件
JSON文件的文件类型是".json",JSON文本的MIME类型是"application/json"
四、对象与JSON字符串
将JSON作为数据传输一般要经过以下步骤(以向后端发送数据为例)
4.1 将对象转换为JSON字符串
字符串拼接
//输入
var name = "MicDevelop",number = 1;
var json = '{"Name":"' + name + '","Number":' + number + '}';
console.log(json);
//输出
{"Name":"MicDevelop","Number":1} //类型String
JSON.stringify()函数
//输入
var obj = {Name:"MicDevelop",Number:1};
var json = JSON.stringify(obj);
console.log(json);
//输出
{"Name":"MicDevelop","Number":1} //类型String
4.2 将JSON字符串转换为对象
JavaScript内置函数eval();eval() 函数使用时,必须把文本包围在括号中,否则会报错
//输入
var json = '{"Name":"MicDevelop","Number":1}';
var obj = eval('(' + json + ')');
console.log(obj);
//输出
{Name: "MicDevelop", Number: 1} //类型Object
JSON.parse()函数
//输入
var json = '{"Name":"MicDevelop","Number":1}';
var obj = JSON.parse(json)
console.log(obj);
//输出
{Name: "MicDevelop", Number: 1} //类型Object
使用JSON解析器将JSON字符串转换为对象是更安全的做法。一般的浏览器中都提供了JSON支持,而且JSON解析器比JavaScript编译器的速度更快。
将对象转换为JSON字符串后,便可将其放入请求中发送至服务器了。