JSON简析
1.简介
-
JSON
,是一种数据格式
而不是编程语言
,它和JavaScrip
并没有从属关系,任何编程语言都可以使用JSON
;
2.语法规则
-
JSON
分为三类 简单值
:与JS语法相同,可以在JSON中表示字符串,数值,布尔值和null,但是其不支持undefined;5 // 数值 "Hello World" //字符串
对象
:键值和键名都得用双引号;let person = { "name":"Tom", "age" : "18"}
数组
;[25, "hello", true] [{"name":"Tom"}, {"name":"Lily"}]
3.解析和序列化
JSON.stringify(目标JS对象,过滤器,字符串缩进)
(JS
对象—->JSON
对象)let person= { name: "Tom", age : 18, language:"Eng" } //1.过滤器 数组形式 let res = JSON.stringify(person,["name","age"]) //{ name: "Tom", "age" : 18} 函数形式 let res = JSON.stringify(person,(key,value)=>{ switch(key){ case "name": return value; case "age"" return 20; case "language"; return undefined }}) //返回undefined删除该属性 //{name: "Tom", "age" : 20} //2.字符串缩进 数字形式 let res = JSON.stringify(person,null,4),每行缩进4字符,最大为10,过10也为10; 字符形式 let res = JSON.stringify(person,null,"--")空格被-代替,最大为10,过10为10
JSON.parse(目标JSON对象,过滤器)
(JSON
对象—->JS
对象)let res = JSON.parse(person,(key,value)=>{ switch(key){ case "name": return value; case "age"" return 22; case "language"; return undefined }}) //返回undefined删除该属性 //{name: "Tom", "age" : 22}
4.注意
- 字符串必须用双引号;
- 对象的键值对也不用双引号,若是
number
,boolean
,或者null
可不用;
参考资料:《JS高级程序设计》