【问题标题】:Retrieving data from enumerated JSON sub arrays in Javascript without getJSON在没有getJSON的情况下从Javascript中的枚举JSON子数组中检索数据
【发布时间】:2011-02-11 09:05:20
【问题描述】:

我是 JSON 和 ajax 的新手,但我正在尝试访问数组中的数据,其中项目在另一个子数组中的子数组中枚举。我在尝试访问类似的东西时遇到了问题

data.items[0].details.specs[1].name
data.items[0].details.specs[1].id
data.items[0].details.specs[2].name
data.items[0].details.specs[2].id
etc

谁能指出我如何正确访问它的正确方向?谢谢。

更新:以下是对 JSON 响应的问题的澄清:

{data:{
     items: [
             {details: {specs:[{name:'something1', id:'something1'},
                               {name:'something2', id:'something2'},
                               {name:'something3', id:'something3'},
                               ...
                               ]}}
             {details: {specs:[{name:'somethingA', id:'somethingA'},
                               {name:'somethingB', id:'somethingB'},
                               {name:'somethingC', id:'somethingC'},
                               ...
                               ]}} 
             {details: {specs:[{name:'somethingX', id:'somethingX'},
                               {name:'somethingY', id:'somethingY'},
                               {name:'somethingZ', id:'somethingZ'},
                               ...
                               ]}}
            ]}
}

我将如何访问,例如,'name:somethingB'?

【问题讨论】:

    标签: javascript ajax arrays json syntax


    【解决方案1】:

    可能只是 specs 不是对象数组。

    您的 json 需要像这样才能以这种方式访问​​

    { 
        data:{
             items: [
                     {details:
                          {specs:[
                                  {name:'something1', id:'something1'},
                                  {name:'something2', id:'something2'},
                                  {name:'something3', id:'something3'},
                                  ...
                                  ]
                           }
                     } 
              ]
        }
    }
    

    编辑:根据 OP,这是浏览器缓存问题

    【讨论】:

    • 您好,感谢您的回复。是的,该数组有多个“items”数组,每个数组中都有一个“specs”数组。那么在您的示例中,我将如何访问“name:something2”? (抱歉,我会在更新我的问题时澄清)
    • @Archie,根据您的更新,看起来您的 JSON 和您对 JSON 的使用很好,所以可能是因为您的浏览器缓存(读取旧 json,如果您访问 @987654322 会出错@),所以请尝试清除浏览器缓存并重试。
    • 但有一点@Archie,请确保您在 json 中的数组末尾没有多余的逗号,例如 [{name:'name1',id:'id1'},{name:'name1',id:'id1'},] 某些浏览器无法使用它。
    • 哇...花了一整天的时间试图弄清楚这一点后,我感觉很糟糕,但很高兴你解决了我的问题。清除浏览器缓存就可以了,谢谢!
    • 和@Archie,有时,当你进行AJAX调用时,需要传递?1234之类的虚拟参数以避免缓存问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-05
    • 2022-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-01
    相关资源
    最近更新 更多