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()还是不能满足某些对象进行自定义序列化要求时的需求
显示结果为ToJSON
序列化对象的顺序如下:
如果存在toJSON方法,而且通过它可以取得有效值,则调用该方法,否则返回函数本身
如果提供了第二个参数,应用这个函数过滤器。传入过滤器的值是第一步的返回值
对第二步返回的所有值进行序列化
如果提供了第三个参数,执行相应的格式化
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方法,而且通过它可以取得有效值,则调用该方法,否则返回函数本身
如果提供了第二个参数,应用这个函数过滤器。传入过滤器的值是第一步的返回值
对第二步返回的所有值进行序列化
如果提供了第三个参数,执行相应的格式化
相关文章推荐
- Sublime 编辑 JS和HTML
- JSTL标签 参考手册
- JS 实现TextBox光标定位
- jsp.html中的引入js.css文件的问题,以及文件路径详解。
- js写的简单轮播图
- js跨域请求有哪些有哪些?为什么需要跨域请求
- 做一个带时分秒的extjs 日期控件扩展
- 直接从链接往jsp页面传值的问题
- javascript内置函数
- JSON解析 ---- NSJSONSerialization介绍
- JavaScript中标点符号引发的异常
- javascript 给数组增加ES5方法
- 在Java中直接调用js代码
- javascript中undefined和null的比较
- js页面跳转(跳出整个页面)
- javascript学习笔记
- js包导入
- JavaScript的一些要点吧~偶然发现的
- JavaScript中运算符的优先级
- javascript中"=="和"==="的比较