js-20170817-JSON对象

1.JSON格式
JSON对值的类型和格式有严格的规定。
(1)复合类型的值只能是数组或对象,不能是函数、正则表达式对象、日期对象。
(2)简单类型的值只有四种:字符串、数值(必须以十进制表示)、布尔值和null(不能使用NaN, Infinity, -Infinity和undefined)。
(3)字符串必须使用双引号表示,不能使用单引号。
(4)对象的键名必须放在双引号里面。
(5)数组或对象最后一个成员的后面,不能加逗号。
 
 
2.JSON.stringify()
(1)基本用法
JSON.stringify方法用于将一个值转为字符串。该字符串符合 JSON 格式,并且可以被JSON.parse方法还原。
如果原始对象中,有一个成员的值是undefined、函数或 XML 对象,这个成员会被过滤。
如果数组的成员是undefined、函数或 XML 对象,则这些值被转成null。
正则对象会被转成空对象
(2)第二个参数
JSON.stringify方法还可以接受一个数组,作为第二个参数,指定需要转成字符串的属性。
var obj = {
'prop1': 'value1',
'prop2': 'value2',
'prop3': 'value3'
};
var selectedProperties = ['prop1', 'prop2'];
JSON.stringify(obj, selectedProperties)
// "{"prop1":"value1","prop2":"value2"}"
这个类似“白名单”的数组,只对对象的属性有效,对数组无效。
JSON.stringify(['a', 'b'], ['0'])
// "["a","b"]"
 
JSON.stringify({0: 'a', 1: 'b'}, ['0'])
// "{"0":"a"}"
(3)第三个参数
JSON.stringify还可以接受第三个参数,用于增加返回的JSON字符串的可读性。如果是数字,表示每个属性前面添加的空格(最多不超过10个);如果是字符串(不超过10个字符),则该字符串会添加在每行前面。
 
 
3.JSON.parse()
JSON.parse方法用于将JSON字符串转化成对象。
如果传入的字符串不是有效的JSON格式,JSON.parse方法将报错。
JSON.parse("'String'") // illegal single quotes
// SyntaxError: Unexpected token ILLEGAL
posted @ 2017-09-12 18:03  jialuchun  阅读(120)  评论(0编辑  收藏  举报