在这篇文章中会讲到JSON与JavaScript对象的转换,以及转换过程中的一些事情,第二次学习JSON,有新的收获
语法
- 简单值
例如5或者"hahahah" //JSON字符串必须使用双引号
- 对象
{
"name": "zll",
"age": 20
}
- 数组
[
{},
{},
{}
]
解析与序列化
我们先写一个JavaScript对象作为例子,来自于书上
var book = {
title: "happy",
authors: [
"NCZ"
],
edition:3,
year: 2011
};
序列化
var jsonText = JSON.stringify(book);
我们得到的是不包含任何空白符和缩进的字符串,如下:
{"title":"happy","authors": ["NCZ"],"edition":3,"year":2011}
解析
var bookCopy = JSON.parse(jsonText)//浏览器支持方法
var bookCopy = eval('(' + jsonText + ')') //javascript支持方法
序列化选项
序列化选项包含过滤器和一个选项
- 过滤器:可以是数组,也可以是函数
a、数组:`var jsonText = JSON.stringify(book,["title","edition"]);`
表示只序列化"title","edition"这两项
b、函数:
var jsonText = JSON.stringify(book,function(key,value){
});
- 一个选项:是否缩进
var jsonText = JSON.stringify(book,null,4);//缩进四个空格
var jsonText = JSON.stringify(book,null,"----");//缩进样式
解析选项
还原函数类似于上面的过滤器函数
特别的,当值为unfined时,JSON会忽略