码迷,mamicode.com
首页 > Web开发 > 详细

JSON学习心得

时间:2015-07-06 21:18:46      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:

今天复习了一下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()还是不能满足某些对象进行自定义序列化要求时的需求

 

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 </head>
 5 <body>
 6 <script>
 7 var book = {
 8 title: "title",
 9 toJSON:function(){
10 return "ToJSON";
11 }
12 };
13 alert(JSON.stringify(book));
14 </script>
15 </body>
16 </html>

显示结果为ToJSON

序列化对象的顺序如下:

  1. 如果存在toJSON方法,而且通过它可以取得有效值,则调用该方法,否则返回函数本身
  2. 如果提供了第二个参数,应用这个函数过滤器。传入过滤器的值是第一步的返回值
  3. 对第二步返回的所有值进行序列化
  4. 如果提供了第三个参数,执行相应的格式化

JSON学习心得

标签:

原文地址:http://www.cnblogs.com/smart-tian/p/4625142.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!