JSON 多层嵌套解析:4 个技巧,取值不报错

0 阅读1分钟

电商 API 返回的 JSON 常多层嵌套(如商品详情→SKU→价格),直接硬取值极易因字段为空导致程序崩溃!分享 4 个实操技巧,适配 Python/PHP/Java 所有语言,轻松提取嵌套数据,全程不报错。

  1. 用语言原生安全取值方法,替代硬取值拒绝直接写data["item"]["sku"]["price"],改用安全取值语法,字段不存在时返回默认值。✅ 各语言示例:
  • Python:data.get("data", {}).get("item", {}).get("sku", [{}])[0].get("price", "0.00")
  • PHP:$price = isset($data['data']['item']['sku'][0]['price']) ? $data['data']['item']['sku'][0]['price'] : "0.00";
  • JavaScript:const price = data?.data?.item?.sku?.[0]?.price || "0.00";
  1. 扁平化处理高频字段,减少嵌套层级对需要反复调用的核心字段(如商品标题、价格、库存),一次性扁平化为一维结构,后续直接调用,无需重复遍历嵌套。✅ 示例:将{"data":{"item":{"title":"T恤","price":"99"}}} → 扁平为{"title":"T恤","price":"99"}
  2. 核心字段加异常捕获,兜底程序运行订单金额、支付状态等关键字段,外层加异常捕获,字段缺失时执行兜底逻辑(记录日志 + 返回默认值),确保程序不中断。✅ Python 示例:

python

运行

try:
    price = data["data"]["item"]["sku"][0]["price"]
except (KeyError, IndexError):
    price = "0.00"
    print("SKU价格字段缺失")
  1. 用在线工具快速生成取值路径嵌套结构复杂时,将 JSON 复制到「JSON.cn」等在线工具,一键生成取值路径,直接复制到代码中,避免手动写错层级。

避坑关键:解析数组类型字段(如 sku 列表)时,先判断数组是否为空,再通过索引取值,切勿直接写sku[0]