我试图返回嵌套在复杂对象数组中的JSON对象的值。不幸的是,由于JSON的结构似乎不寻常,我无法轻易做到;例如:
var cartContents = {
"contents":
{
"ed2be4abf6cc927dd670b567efd42fc3":
{
"id": "1288785070733722605",
"quantity":2,
"limit":10,
"offset":0,
"order":null,
"created_at":"2016-07-06 12:18:10",
"updated_at":"2016-07-06 12:18:34",
"sku":"006",
"title":"Fishing Rod",
"slug":"fishing-rod-lara-fluorescent-print",
"sale_price":0,
"status":{
"value":"Draft",
"data": {
"key":"0",
"value":"Draft"
}
},
"category":
{
"value":"Bottom",
"data":
{
"1228355758422329063":
{
"id":"1238352758122309063",
"order":null,
"created_at":"2016-07-06 11:23:54",
"updated_at":"2016-07-06 11:38:23",
"parent":
{
"value":"All Sports",
"data":
{
"id":"2288364532150634121",
"order":null,
"created_at":"2016-07-06 11:37:25"...
}
}
}
}
}
}
}
}
以下代码生成正确的结果("钓鱼竿"):
var x = cartContents.contents;
console.log(x.ed2be4abf6cc927dd670b567efd42fc3.title);
然而,重点是32个字符串(' ed2be4abf6cc927dd670b567efd42fc3')代表许多产品中的一个,每个产品都有一个随机的32位字符串,因此它们不能单独编码到JS中。
我尝试了很多不同的方法。最新的是以下代码(其中' carts'是一个独特的32个字符串的数组:
var x = cartContents.contents;
$.each(carts, function() {
console.log(x.this.title);
});
结果是" jQuery.Deferred异常:无法读取属性' title'未定义的TypeError:无法读取属性' title'未定义"。
非常感谢帮助访问以下密钥及其值:
另外值得一提的是我无法触及服务器,因此根本无法更改数据结构。
非常感谢提前。