电商 API 返回的 JSON 常多层嵌套(如商品详情→SKU→价格),直接硬取值极易因字段为空导致程序崩溃!分享 4 个实操技巧,适配 Python/PHP/Java 所有语言,轻松提取嵌套数据,全程不报错。
- 用语言原生安全取值方法,替代硬取值拒绝直接写
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";
- 扁平化处理高频字段,减少嵌套层级对需要反复调用的核心字段(如商品标题、价格、库存),一次性扁平化为一维结构,后续直接调用,无需重复遍历嵌套。✅ 示例:将
{"data":{"item":{"title":"T恤","price":"99"}}}→ 扁平为{"title":"T恤","price":"99"}。 - 核心字段加异常捕获,兜底程序运行订单金额、支付状态等关键字段,外层加异常捕获,字段缺失时执行兜底逻辑(记录日志 + 返回默认值),确保程序不中断。✅ Python 示例:
python
运行
try:
price = data["data"]["item"]["sku"][0]["price"]
except (KeyError, IndexError):
price = "0.00"
print("SKU价格字段缺失")
- 用在线工具快速生成取值路径嵌套结构复杂时,将 JSON 复制到「JSON.cn」等在线工具,一键生成取值路径,直接复制到代码中,避免手动写错层级。
避坑关键:解析数组类型字段(如 sku 列表)时,先判断数组是否为空,再通过索引取值,切勿直接写sku[0]。