您的位置:首页 > Web前端 > JavaScript

JSON学习心得

2015-07-06 19:13 561 查看
今天复习了一下json写一下我的心得:

1、首先需要明确的是,json是一种数据格式,而不是一种编程语言。

2、json可以表示三种类型的值:

简单值:字符串,数字,布尔型,NULL(不支持undefined)

对象

数组

3、json中的字符串必须使用双引号,使用单引号会出错;对象中的属性名也要使用双引号

4、javascript和json的区别:

json没有生命变量(json中没有变量的概念)

json没有末尾分号

5、json对象有两个方法:stringify(),parse()

stringfy将javascript对象序列化为json字符串,而parse将json字符串解析为javascript对象

JSON.stringfy()可以接受三个参数,参数二可以是数组或者函数:

数组:

JSON.stringify(book,["title","edition"]);//过滤器,表示book中只保留,"title","edition"这两个属性

函数:

JSON.stringify(book,function(key,value){//过滤代码});

第三个参数用于控制结果中的缩进和空白字符,最大缩进空格数为10

JSON.stringify(book,null,"--");

toJSON方法

当JSON.stringify()还是不能满足某些对象进行自定义序列化要求时的需求

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<script>
var book = {
title: "title",
toJSON:function(){
return "ToJSON";
}
};
alert(JSON.stringify(book));
</script>
</body>
</html>


显示结果为ToJSON

序列化对象的顺序如下:

如果存在toJSON方法,而且通过它可以取得有效值,则调用该方法,否则返回函数本身

如果提供了第二个参数,应用这个函数过滤器。传入过滤器的值是第一步的返回值

对第二步返回的所有值进行序列化

如果提供了第三个参数,执行相应的格式化
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: