JSON
语法
json的语法可以表示以下三种类型的值。
1)简单值:可以在JSON中中表示字符串、数值、布尔值和null。但JSON不支持undefined
如:JSON.stringify({name: ‘jack’, age: ‘12’, gender: undefined}) // ‘{“name”:“jack”,“age”:“12”}’
2)数组
3)对象
JavaScript 字符串和JSON字符串的最大区别在于:JSON字符串必须使用双引号(单引号会引起语法错误)
JSON的解析和序列化:
JSON对象有两个方法:stringify() 和 parse()
stringify 用于把JavsScript对象序列化为 JSON字符串
parse 用于把 JSON字符串解析为 JavsScript 值
常规使用:
const bookStore={
name: ‘css指南’,
price: 12,
number: 10
}
JSON.stringify(bookStore) // {“name”:“css指南”,“price”:12,“number”:10}
默认情况下, JSON.stringify 输出的字符串不包含任何空格字符或缩进。
实际上 JSON.stringify() 除了要序列化的js 对象外,还可以接受另外两个参数,第二个参数是 过滤器(可以是数组,也可以是一个函数),第三个是一个选项,表示是否在JSON字符串中保留缩进。
过滤器:
JSON.stringify(bookStore, [“name”, “price”]) // {“name”:“css指南”,“price”:12}
第三个参数,用于控制结果中的锁进和空白符:
当参数是数值,则会按数值进行缩进(最大为10)
JSON.stringify(bookStore, null, 3) // {
“name”: “css指南”,
“price”: 12,
“number”: 10
}
当参数是字符串时,则字符串被用作缩进字符
JSON.stringify(bookStore, null, ‘–’) // {
–“name”: “css指南”,
–“price”: 12,
–“number”: 10
}
JOSN.parse 同理