我试图解析api调用返回的一些嵌套json。以下是返回内容的简化版本。
{
"Includes":{
"Products":{
"P123456":{
"Brand":{},
"Description":"ipsem lorem",
"Statistics":
[
"Author":"John Smith",
"IsFeatured":false,
"Total": 3
]
}
}
}
}
我已经尝试了几种不同的语法来获取我需要的产品product_code =" P123456"
data.Includes.Products.product_code.Statistics
data.Includes.Products[product_code].Statistics
我也尝试过使用' get'和' eval'无济于事。错误响应始终相同
application.js:1639 Uncaught TypeError: Cannot read property 'Statistics' of undefined
我知道产品代码是正确的,因为我有控制台记录它。我也成功安装了console.logged
data.Includes.Products["P123456"].Statistics
如何访问嵌套在产品代码下的数据," P123456" ?该项目使用zepto而不是jQuery。
答案 0 :(得分:1)
使用有效的数据结构,您可以通过
访问它object.Includes.Products.P123456
或
object.Includes.Products[product_code]
var object = {
"Includes": {
"Products": {
"P123456": {
"Brand": {},
"Description": "ipsem lorem",
"Statistics": { // its an object, not an array
"Author": "John Smith",
"IsFeatured": false,
"Total": 3
}
}
}
}
},
product_code = 'P123456';
document.write('<pre>' + JSON.stringify(object.Includes.Products.P123456, 0, 4) + '</pre>');
document.write('<pre>' + JSON.stringify(object.Includes.Products[product_code], 0, 4) + '</pre>');
答案 1 :(得分:0)
你有没有试过这个? data.Includes.Products.P123456.Statistics
?它看起来像属性而不是索引字符串。
答案 2 :(得分:0)
Object.keys(data.Includes.Products)
将返回产品下的一系列键。
如果你想要第一个Object.keys(data.Includes.Products)[0]
。
可以检索统计数据
var key = Object.keys(data.Includes.Products);
var statistics = data.Includes.Products[key].Statistics;
纯JavaScript ......没有库。
PS。你的JSON格式不正确。那&#34;统计&#34;阵列会引起眼泪。