JSON使用

128 阅读2分钟

附:「这是我参与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.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是标记语言)