IT人才网JSON学习笔记
来源:互联网 发布:淘宝虚拟店铺怎么开 编辑:程序博客网 时间:2024/06/08 05:50
JSON可以表示三种类型的值: (以下笔记主要参考《JavaScript高级程序设计》,部分来源自己动手。)
简单值:基本语法与JS 一致,但不支持特殊值undefined
对象:对象作为一种复杂数据类型,表示一组有序的键值对。
数组:数组也作为一种复杂数据类型,表示一组有序的值的列表。
简单值:
可表示数字,字符串及null值,注意:字符串必须用双引号,单引号会导致语法出错。
对象:
JSON中的对象与javascript中的字面量稍有不同,
下面是一个javascript的对象字面量:
JSON中要求给属性加双引号,且JSON中没有变量概念,因此JSON表示上述对象的方式如下:
且末尾不需要分号。
JSON对象可以嵌套,如下:
尽管存在两个同名的属性,但其各属于不同的对象,因此没有任务冲突。
数组:
同样,首先来对比javascript中的数组字面量:
var values = [25,"hi",true];
在JSON中,可以采用同样的语法表示一个数组类型:
[25,"hi",true]
注意没有分号和变量。
把数组和对象组合起来,可以构成更加复杂的数据集合:
这个数组包含一些图书对象,然而每个对象中的authors属性的值又是一个数组。
JSON对象有两个方法stringify()和parse():
stringify():用于把JavaScript对象序列化为JSON字符串。
parse():把JSON字符串解析为原生JavaScript值。
book与bookCopy具有相同的属性,但它们是独立的,没有任何关系的对象。
stringify()除了接收要序列化的JavaScript对象外,还可接收两个参数,第一个是一个过滤器,可以是一个数组(假如是数组,JSON.stringify()只会列出数组中列出的属性,),也可以是一个函数(函数接收两个参数,属性名(键)和属性值,根据属性名可以知道如何处理序列化的对象中的属性,属性名只能是字符串,而值是想要返回的值,不一定是键值对结构时的值,键名可以是空字符串,假如键名是空字符串,结果将会返回该空字符串对应的值,不再是JSON格式数据,这是我自己测试结果,有待大家一起验证。假如函数返回了undefined,结果将会忽略掉对应的键名)下面看例子:
打印结果为
假如在switch语句中添加一个
第二个打印结果就变成:
只有文本,不再是JSON格式了。
最后一个是一个选项,表示JSON字符串中是否保留缩进。如果这个参数是一个数值,则表示的是每个级别缩进的空格数,如果是一个字符而非数值,则这个字符串将在JSON字符串中被用作缩进字符,(而非空格。如制表符,短划线等)
toJSON()方法(对这个方法不是很理解)
简单值:基本语法与JS 一致,但不支持特殊值undefined
对象:对象作为一种复杂数据类型,表示一组有序的键值对。
数组:数组也作为一种复杂数据类型,表示一组有序的值的列表。
简单值:
可表示数字,字符串及null值,注意:字符串必须用双引号,单引号会导致语法出错。
对象:
JSON中的对象与javascript中的字面量稍有不同,
下面是一个javascript的对象字面量:
JSON中要求给属性加双引号,且JSON中没有变量概念,因此JSON表示上述对象的方式如下:
且末尾不需要分号。
JSON对象可以嵌套,如下:
尽管存在两个同名的属性,但其各属于不同的对象,因此没有任务冲突。
数组:
同样,首先来对比javascript中的数组字面量:
var values = [25,"hi",true];
在JSON中,可以采用同样的语法表示一个数组类型:
[25,"hi",true]
注意没有分号和变量。
把数组和对象组合起来,可以构成更加复杂的数据集合:
这个数组包含一些图书对象,然而每个对象中的authors属性的值又是一个数组。
JSON对象有两个方法stringify()和parse():
stringify():用于把JavaScript对象序列化为JSON字符串。
parse():把JSON字符串解析为原生JavaScript值。
book与bookCopy具有相同的属性,但它们是独立的,没有任何关系的对象。
stringify()除了接收要序列化的JavaScript对象外,还可接收两个参数,第一个是一个过滤器,可以是一个数组(假如是数组,JSON.stringify()只会列出数组中列出的属性,),也可以是一个函数(函数接收两个参数,属性名(键)和属性值,根据属性名可以知道如何处理序列化的对象中的属性,属性名只能是字符串,而值是想要返回的值,不一定是键值对结构时的值,键名可以是空字符串,假如键名是空字符串,结果将会返回该空字符串对应的值,不再是JSON格式数据,这是我自己测试结果,有待大家一起验证。假如函数返回了undefined,结果将会忽略掉对应的键名)下面看例子:
打印结果为
假如在switch语句中添加一个
第二个打印结果就变成:
只有文本,不再是JSON格式了。
最后一个是一个选项,表示JSON字符串中是否保留缩进。如果这个参数是一个数值,则表示的是每个级别缩进的空格数,如果是一个字符而非数值,则这个字符串将在JSON字符串中被用作缩进字符,(而非空格。如制表符,短划线等)
toJSON()方法(对这个方法不是很理解)
可以为任何对象添加toJSON()方法,如:
文章来源:It人才网
0 0
- IT人才网JSON学习笔记
- 28个js验证有招IT人才网
- IT 项目学习笔记
- IT管理学习笔记
- IT开发学习笔记
- Json(Json.Net)学习笔记
- JSON学习笔记
- JSON学习笔记
- json学习笔记
- JSON学习笔记
- json格式学习笔记
- JSON学习笔记(-)
- JSON学习笔记
- JSON学习笔记
- json学习笔记
- Json学习笔记
- json学习笔记
- JSON学习笔记
- java 获取当前日期时间和求出本周之内周一,周日的时间
- [HDOJ 4863] Centroid of a Tree [树形DP]
- 教你如何读懂“模拟电路图(借鉴)
- OpenLDAP基础安装配置
- 两个云上的企业级移动工作软件 - iOffice:移动时代的工作方式,云之家:一种新的工作方式
- IT人才网JSON学习笔记
- java5 多线程新特性
- hdu2544最短路(floyd)(dijkstra)
- 能将pdf文件转成ppt吗
- HDU 4861(2014多校联赛1)1001 Couple doubi
- 给input的value赋予默认值为当天日期
- OC语言学习-面向对象
- Google C++ style guide——头文件
- OCP 1Z0 053 196