JSON的使用方法新手简介

165 阅读3分钟

JSON是一种很好的数据存储格式,在JavaScript中被广泛使用,但不仅如此--发现它的所有内容

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

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

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

下面是一个JSON字符串的例子。

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

从这个小片段中,你可以看到键被包裹在双引号中,一个冒号将键和值分开,而且值可以是不同的类型。

键-值组由逗号分隔。

在JSON文件中,间距(空格、制表符、新行)并不重要。上述内容等同于

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

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

但像往常一样,格式化的数据更容易理解。

JSON诞生于2002年,由于它的易用性和灵活性而大受欢迎,尽管它诞生于JavaScript世界,但很快就扩展到其他编程语言。

它被定义在ECMA-404标准中。

JSON字符串通常存储在.json 文件中,并以application/json MIME类型在网络上传输。

数据类型

JSON支持一些基本的数据类型。

  • Number: 任何没有用引号包裹的数字
  • String: 任何用引号包裹的字符集
  • Boolean:truefalse
  • Array: 一个用方括号包裹的值的列表
  • Object: 一组键值对,用大括号包装
  • null:null ,它代表一个空值。

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

在JavaScript中对JSON进行编码和解码

2009年ECMAScript 5在JavaScript标准中引入了JSON 对象,除此之外还提供了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"
    }
  }
}

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

其中一个是JSONLint,JSON验证器。使用它,你可以验证一个JSON字符串是否有效。

JSONFormatter是一个很好的工具,用于格式化JSON字符串,使其根据你的习惯更容易阅读。

JSON模式

虽然JSON从一开始就非常灵活,但有时你需要一个更严格的组织来保持事物的完整性。

这时JSON Schema就会发挥作用。它是一种根据你创建的特定格式来注释和验证JSON文档的方法。