JavaScript------JSON

本文详细介绍了JSON格式,包括其与JavaScript的关系,数据的存储与转换(序列化和反序列化),以及如何在JavaScript中使用JSON对象和层次结构进行数据访问。
摘要由CSDN通过智能技术生成

1. JSON是一种按照 JavaScript 对象语法的数据格式,虽然它是基于 JavaScript 语法,但它独立于 JavaScript,这也是为什么许多程序环境能够读取(解读)和生成 JSON。

2. JSON 可以作为一个对象或者字符串存在,前者用于解读 JSON 中的数据,后者用于通过网络传输 JSON 数据。JavaScript 提供一个全局的 可访问的 JSON对象来对这两种数据进行转换。

备注: 将字符串转换为原生对象称为反序列化(deserialization),而将原生对象转换为可以通过网络传输的字符串称为序列化(serialization)。

3. 一个 JSON 对象可以被储存在它自己的文件中,这基本上就是一个文本文件,扩展名为 .json,还有 application/json MIME类型。

4.JSON结构:

JSON 是一个字符串,格式类似于 JavaScript 对象字面量的格式。你可以在 JSON 中包含与标准 JavaScript 对象相同的基本数据类型——字符串、数字、数组、布尔值和其他对象字面量。这使你可以构建一个数据层次结构:

{
  "squadName": "Super hero squad",
  "hometown": "Metro City",
  "formed": 2016,
  "secretBase": "Super tower",
  "active": true,
  "members": [
    {
      "name": "Molecule Man",
      "age": 29,
      "secretIdentity": "Dan Jukes",
      "powers": [
      "Radiation resistance", 
      "Turning tiny", 
      "Radiation blast"
    ]
    },
    {
      "name": "Madame Uppercut",
      "age": 39,
      "secretIdentity": "Jane Wilson",
      "powers": [
        "Million tonne punch",
        "Damage resistance",
        "Superhuman reflexes"
      ]
    },
    {
      "name": "Eternal Flame",
      "age": 1000000,
      "secretIdentity": "Unknown",
      "powers": [
        "Immortality",
        "Heat Immunity",
        "Inferno",
        "Teleportation",
        "Interdimensional travel"
      ]
    }
  ]
}

5. 如果我们把字符串加载到 JavaScript 程序中,并将其解析到一个名为 superHeroes 的变量,那么我们就可以使用在JavaScript对象基础文章中相同的点/括号表示法来访问其中的数据。例如:

superHeroes.hometown;
superHeroes["active"];

6. 为了访问层次结构中更深层次的数据,必须将所需的属性名和数组索引链接在一起。例如,访问 members 数组第二个英雄的第三个超能力,可以这样做:

superHeroes["members"][1]["powers"][2];
  1. 首先我们有变量名 superHeroes,储存对象。
  2. 在对象中我们想访问 members 属性,所以我们使用 ["members"]
  3. members 包含有对象数组,我们想要访问第二个元素,所以我们使用 [1]
  4. 在对象内,我们想访问 powers 属性,所以我们使用 ["powers"]
  5. powers 属性是一个包含英雄技能的数组。我们想要第三个,所以我们使用 [2]

完整代码:

const superHeroes={
    "squadName": "Super hero squad",
    "hometown": "Metro City",
    "formed": 2016,
    "secretBase": "Super tower",
    "active": true,
    "members": [
      {
        "name": "Molecule Man",
        "age": 29,
        "secretIdentity": "Dan Jukes",
        "powers": ["Radiation resistance", "Turning tiny", "Radiation blast"]
      },
      {
        "name": "Madame Uppercut",
        "age": 39,
        "secretIdentity": "Jane Wilson",
        "powers": [
          "Million tonne punch",
          "Damage resistance",
          "Superhuman reflexes"
        ]
      },
      {
        "name": "Eternal Flame",
        "age": 1000000,
        "secretIdentity": "Unknown",
        "powers": [
          "Immortality",
          "Heat Immunity",
          "Inferno",
          "Teleportation",
          "Interdimensional travel"
        ]
      }
    ]
  }

 结果展示:

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值