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字符串后,便可将其放入请求中发送至服务器了。

posted @ 2020-12-25 23:08  LegendLiuYC  阅读(158)  评论(0编辑  收藏  举报