You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用JSON.parse无法获取JSON中store数组的name值,求解决方法

问题分析与解决方案

首先看你的JSON结构,最外层是一个数组,里面的第一个元素才是包含store数组的对象,简化后的结构是这样的:

[
  {
    "store": [
      { "name":"Grand Theft Auto V" },
      { "skuid":"UP1004-CUSA00419_00-GTAVDIGITALDOWNL-U001" },
      { "releasedate":"2014-11-18T00:00:00Z" }
      // 其他元素...
    ]
  }
]

你之前的尝试都忽略了最外层的数组,直接去访问store属性,这就是问题所在——解析后的cif是一个数组,不是单个对象,所以得先拿到数组里的第一个元素,再去操作它的store数组。

正确的取值方式

你需要先访问最外层数组的索引[0],拿到包含store的对象,再访问store数组的第一个元素,最后取name值:

var cif = JSON.parse(response);
// 两种写法都有效,选你习惯的就行
var gameName = cif[0].store[0].name;
// 或者用方括号语法
var gameName = cif[0]["store"][0]["name"];

alert(gameName); // 会弹出 "Grand Theft Auto V"

如果要更新DOM元素,也可以这么写(建议加可选链操作符避免数据异常时报错):

var cif = JSON.parse(response);
if (cif[0]?.store?.[0]?.name) {
  $("#cif-title").html(cif[0].store[0].name);
}

为什么之前的尝试失败?

  • cif["store"][0].name / cif.store[0].name:cif是数组,数组本身没有store属性,所以直接访问会得到undefined
  • cif[0].store.name:store是数组,不是单个对象,数组没有name属性,必须通过索引(比如[0])访问数组里的元素
  • cif["store"].name:同样错误,cif是数组,不存在store这个属性

内容的提问来源于stack exchange,提问作者J. Doe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:49:50