附:「这是我参与2022首次更文挑战的第6天,活动详情查看:2022首次更文挑战」
JSON
介绍
-
JSON是一门标记语言(跟HTML、markdown一样,都是用来展示数据的)
-
英文全称:JavaScript Obejct Notation
-
JSON官网:www.json.org/json-zh.htm…
补充:标记语言
- 标记语言可以理解为一个标签,里面有内容,当你用这个标签时,就会展示这个标签的效果
- 比如 a标签(用于显示一个链接),h1~h6标签(用于显示标题大小),b标签(字体加粗)
- 这个就是标记语言
规范
(1)只有双引号,没有单引号(JS中用的是单引号)
(2)value只接受6种类型
- string:只支持双引号,不支持单引号和无引号
- number:支持科学计数法等
- bool:true 和 false
- null:没有undefined
- object
- array
铁轨图
- 这个铁轨图来源于JSON官网,是教我们如何写JSON文件的
- 官网还有很多,如果你能看懂,就说明你已经掌握了JSON
JSON.parse (JSON 转 JS)
- 将一个符合JSON语法的文件转为JS对象的形式
- 参考文章:m.runoob.com/json/json-p…
JSON.stringify (JS 转 JSON)
-
是JSON.parse 的逆运算(JS数据 => JSON字符串)
-
由于 JS 的数据类型 比 JSON多,所以 JS数据中出现 JSON不支持的类型,可能会转失败。
-
如果失败,就抛出一个 Error 对象
(1)JSON支持的数据类型
(2)JSON不支持的数据类型(比如 JS 中有函数数据类型,JSON没有)
解析:
- 它直接把函数给忽略了(因为JSON没有函数的数据类型)
- 这里设计有问题,本来不支持应该会报错,但是这里没有报错,而是忽略了这个函数。
try catch(捕获错误)
(1)正常的代码
(2)错误的代码,catch会捕获这个代码输出
解析:
- try 用于执行代码
- catch 用于捕获 try 中的错误代码
参考文章:www.runoob.com/jsref/jsref…
总结
- JSON的6种数据类型 和 JS的7种数据类型区别开来
- 不支持函数,不支持变量(所以也不支持引用)
- JSON中没有undefined只有null
- JSON不是对象,是一门标记语言(网上很多文章都说JSON是对象,这个说法是错的,JSON是标记语言)