什么是JSON?
- JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
- JSON 是轻量级的文本数据交换格式
- JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。
一、JSON语法
JSON支持三种类型值:
简单值:使用JavaScript语法,可以在JSON中表示字符串、数值、布尔值和null,但JSON不支持undefined。
对象:表示一组无序对儿,保存在花括号中,每一个名称和值可以是简单值,也可以是复杂数据类型值。
数组:表示一组有序值,保存在方括号中,数组的值也可以是简单值、对象或数组。
- JSON字符串必须使用双引号
- JSON中没有变量的概念
- JSON数据由逗号隔开
- JSON中对象的属性必须加双引号
通过把数组和对象结合起来,可以构成负责数据集合:
[
{
"title":"Professional",
"authors":["Nico"],
edition:3,
year:2011
},
{
"title":"Professional",
"authors":["Nico","Mic"],
edition:3,
year:2011
},
{
"title":"Professional",
"authors":["Nico","Mary","Arry"],
edition:3,
year:2011
},
]
二、 JSON 解析和序列化
JSON对象有两个方法:stringify() 和 parse() 方法
分别用于把JavaScript对象序列化为JSON字符串和把JSON字符串解析为原生JavaScript值。
var book={
title:"Professional",
authors:[
"NICo"
],
edition:3,
year:2016
};
var jsonText=JSON.stringify(book);
控制台输出的结果
->"{"title":"Professional","authors":["NICo"],"edition":3,"year":2016}"
将JSON字符串直接传递给JSON。parse()就可以得到相应的JavaScript值
var bookC=JSON.parse(jsonText);
结果:
Object {title: "Professional", authors: Array[1], edition: 3, year: 2016}
- 上面的book和bookC虽然具有相同的属性,但是他们是独立的、没有任何关系的数据。
- 如果传给JSON.parse()的字符串不是有效的JSON,该方法会抛出错误。