JSON简介

JSON是一种很好的存储数据的格式,在JavaScript中广泛使用,但不仅限于此-了解所有信息!

JSON是一种用于存储和交换数据的文件格式。

数据存储在一组键值对中。

这些数据是人类可读的,这使得JSON非常适合手动编辑。

这是JSON字符串的示例:

{
  "name": "Flavio",
  "age": 35
}

从这个小片段中,您可以看到键被用双引号引起来,冒号将键和值分开,并且值可以是不同的类型。

键值集用逗号分隔。

JSON文件中的间距(空格,制表符,换行)无关紧要。以上相当于

{"name": "Flavio","age": 35}

或者

{"name":
"Flavio","age":
35}

但是一如既往,格式更好的数据更易于理解。

JSON诞生于2002年,由于其易用性和灵活性而广受欢迎,尽管JSON起源于JavaScript世界,但它迅速传播到其他编程语言。

它在ECMA-404标准

JSON字符串通常存储在.json文件并通过网络与application/jsonMIME类型。

资料类型

JSON支持一些基本数据类型:

  • Number:任何没有用引号引起来的数字
  • String:任何用引号引起来的字符集
  • Booleantrue或者false
  • Array:值列表,用方括号括起来
  • Object:一组括在大括号中的键/值对
  • null: 这null单词,代表一个空值

任何其他数据类型都必须序列化为字符串(然后反序列化)才能存储在JSON中。

用JavaScript编码和解码JSON

ECMAScript 5在2009年推出了JSONJavaScript标准中的对象,除其他外,该对象还提供了JSON.parse()JSON.stringify()方法。

在将其用于JavaScript程序之前,必须先解析字符串格式的JSON并将其转换为JavaScript可以使用的数据。

JSON.parse()将JSON字符串作为其参数,并返回一个包含已解析的JSON的对象:

JSON.stringify()将JavaScript对象作为其参数,并返回一个以JSON表示它的字符串:

JSON.parse()也可以接受一个可选的第二个参数,称为reviver函数。您可以使用它来挂钩解析并执行任何自定义操作:

JSON.parse(string, (key, value) => {
  if (key === 'name') {
    return `Name: ${value}`
  } else {
    return value
  }
})

嵌套对象

您可以使用嵌套对象将数据组织到JSON文件中:

{
  "name": {
    "firstName": "Flavio",
    "lastName": "Copes"
  },
  "age": 35,
  "dogs": [
    { "name": "Roger" },
    { "name": "Syd" }
  ],
  "country": {
    "details": {
      "name": "Italy"
    }
  }
}

使用JSON的在线工具

您可以使用许多有用的工具。

其中之一是JSONLint,即JSON验证程序。使用它可以验证JSON字符串是否有效。

JSONFormatter是格式化JSON字符串的好工具,因此根据您的约定,它更具可读性。

JSON模式

尽管JSON从一开始就非常灵活,但是有时您需要更严格的组织来保持工作状态。

这是JSON模式发挥作用。这是一种根据您创建的特定格式注释和验证JSON文档的方法。

免费下载我的JavaScript初学者手册


更多js教程: