JSON对象详解--包含:转换/取值/解析
评论
收藏

JSON对象详解--包含:转换/取值/解析

经验分享
没有逻辑的张先生
2025-08-20 16:56·浏览量:884
没有逻辑的张先生
影刀专家
影刀认证工程师
发布于 2025-08-20 16:56884浏览

什么是 JSON ?

  • JSON 是轻量级的文本数据交换格式
  • JSON 具有"自我描述性"(人类可读)
  • JSON 具有层级结构(值中存在值)
  • JSON 可通过 JavaScript 进行解析

JSON原始文本示例

{"userInfo":{"name":"李明","age":32,"isMember":true,"joinDate":"2023-05-18","height":1.78,"hobbies":["登山","摄影","编程"],"address":{"city":"上海","district":"浦东新区","hasElevator":false},"contact":[{"type":"phone","value":"13800138000"},{"type":"email","value":"liming@example.com"}],"emptyArray":[],"nullValue":null}}

JSON文本->JSON对象 = DICT字典

转换后赋值的json 类型为 字典

JSON数据的调用

假设下方为 变量 (json) ,影刀的调用方式 点亮python 后输入变量+路径

  • {} 双括号表示对象;
  • [] 中括号表示数组;
  • "" 双引号内是属性或值;
  • : 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象)
{​
  "userInfo": {​                            #字典 -> json["userInfo"]
    "joinDate": "2023-05-18",              #字符串 -> json["userInfo"]["joinDate"]​
    "height": 1.78,                        #浮点数 -> json["userInfo"]["height"]​
    "hobbies": ["登山", "摄影", "编程"],    #数组:python取第一个元素 -> json["userInfo"]["hobbies"][0]​
    "address": {                           #嵌套对象 -> json["userInfo"]["address"]
      "city": "上海",​                      #嵌套对象 -> json["userInfo"]["address"]["city"]​
      "district": "浦东新区",​               #嵌套对象 -> json["userInfo"]["address"]["district"]​
      "hasElevator": False                  #布尔值 -> json["userInfo"]["address"]["hasElevator"]​
    },​
    "contact": [            #对象数组:python取第一个对象的value -> json["userInfo"]["contact"][0]["value"]​
      {​
        "type": "phone",​
        "value": "13800138000"​
      },​
      {​
        "type": "email",​
        "value": "liming@example.com"​
      }​
    ],​
    "emptyArray": [],                   // 空数组:python取长度 -> len(json["userInfo"]["emptyArray"])​
    "nullValue": None                   // None值 -> json["userInfo"]["nullValue"]​
  }​
}

JSON嵌套取值方式

以上述json中的city:上海 为例

嵌套列表取值方式

比如要取 contact 中的  电话和邮箱

如何解析复杂的json结构:

   在线json解析网址: https://jsonhero.io/

       $.userInfo.contact.0.value

JSON["userInfo"]["contact"][0]["value"]

#打印所有联系方式
for item in JSON["userInfo"]["contact"] #取列表节点循环
    print(item["value"]) #取列表项中的字典及后续节点

总结:

  •    json文本需要通过指令转换成json对象
  •    json对象 = dict字典(影刀中)
  •    json对象 嵌套了 多种数据结构
  •    json路径可以取到到任意节点
  •    json路径 = json[字典键名/列表索引][字典键名/列表索引] 可无限嵌套
  •    json数据提取指令忽视层级,会取到不同层级的值
收藏9
全部评论1
最新
发布评论
评论