JSON 代表Javascript Object Notation。它是一种灵活的数据存储方式,但最终它是一个 Javascript 对象。
JSON 是什么样子的?#
JSON 是一种简单的对象结构。有时,它在单独的文件中,以.json结尾,或者有时它在 Javascript 本身中存储在一个变量中。API和NoSQL 数据库通常返回数据或将数据存储为 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.parse和JSON.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!