JSON学习心得

今天复习了一下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. 如果提供了第三个参数,执行相应的格式化

转载于:https://www.cnblogs.com/smart-tian/p/4625142.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值