JSON 如何在 Javascript 中工作

JSON 代表Javascript Object Notation。它是一种灵活的数据存储方式,但最终它是一个 Javascript 对象。

JSON 是什么样子的?#

JSON 是一种简单的对象结构。有时,它在单独的文件中,以.json结尾,或者有时它在 Javascript 本身中存储在一个变量中。APINoSQL 数据库通常返回数据或将数据存储为 JSON。

下面是一个用 JSON 描述的人的例子:

{
    "firstName" : "John",
    "lastName" : "Smith",
    "age" : "99",
    "address" : { 
        "streetAddress" : "123 Fake Street",
        "city" : "FakeTown",
        "zipCode" : "12345"
    },
    "someIds" : [ 123, 234, 345 ]
}

JSON 是灵活的,所以您使用的名称不是一成不变的。您可以像通常在 Javascript 中那样存储任何类型的数据(即数字布尔值数组等)。

使用 JSON#

JSON通常通过API发送或接收。因此,我们有一些工具来操作 JSON。我们拥有的两个最大的是JSON.parseJSON.stringify。如果我们发送 JSON,我们经常将它字符串化,这会将它变成一个字符串。然后,可以使用JSON.parse将类似 JSON 的字符串转换回 Javascript 对象。让我们使用我们原来的 JSON,看看它们是如何工作的:

let myJSON = {
    "firstName" : "John",
    "lastName" : "Smith",
    "age" : "99",
    "address" : { 
        "streetAddress" : "123 Fake Street",
        "city" : "FakeTown",
        "zipCode" : "12345"
    },
    "someIds" : [ 123, 234, 345 ]
}

let stringifyJSON = JSON.stringify(myJSON);

当我们将 JSON 字符串化时,我们最终得到这个,这是我们原始 JSON 的字符串形式的转义版本:

"{\"firstName\":\"John\",\"lastName\":\"Smith\",\"age\":\"99\",\"address\":{\"streetAddress\":\"123 Fake Street\",\"city\":\"FakeTown\",\"zipCode\":\"12345\"},\"someIds\":[123,234,345]}"

使用JSON.parse会将那个字符串转回一个 Javascript 对象:

let stringJSON = "{\"firstName\":\"John\",\"lastName\":\"Smith\",\"age\":\"99\",\"address\":{\"streetAddress\":\"123 Fake Street\",\"city\":\"FakeTown\",\"zipCode\":\"12345\"},\"someIds\":[123,234,345]}";

let parsedJSON = JSON.parse(stringJSON); // This is now a javascript object!