好吧,我有以下JSON代码:计数JSON节点不工作
{
"productDetails": {
"productThumb": "/uploads/[email protected]/showup-bg4.jpg",
"productName": "Hamburger",
"productDesc": "Made with 100% American ground beef",
"productPrice": "9.99",
"productModifiers": [{
"Sides": [{
"modifierName": "Applesauce",
"modifierUpcharge": "0",
"isDefault": "off"
},{
"modifierName": "Rice",
"modifierUpcharge": "0",
"isDefault": "off"
}],
"Toppings": [{
"modifierName": "Bacon",
"modifierUpcharge": "0.25",
"isDefault": "off"
}, {
"modifierName": "Tomato",
"modifierUpcharge": "0",
"isDefault": "on"
}],
"Doneness": [{
"modifierName": "Extra Well",
"modifierUpcharge": "0",
"isDefault": "off"
},{
"modifierName": "Well",
"modifierUpcharge": "0",
"isDefault": "off"
}],
"Breads": [{
"modifierName": "White Bun",
"modifierUpcharge": "0",
"isDefault": "on"
}, {
"modifierName": "Whole Wheat Bun",
"modifierUpcharge": "0",
"isDefault": "off"
}]
}]
}
}
我跑它通过jsonlint.com并验证它回来作为有效的JSON。在我的jQuery,我有以下代码:
$.ajax({
url: "/getItemDetails/"+productType+"/"+productID,
type: "get",
data: ({productType:productType, productID:productID}),
dataType: "json",
success: function(data) {
var numMods = data.productDetails.productModifiers.length;
console.log("There are "+numMods+" categories of modifiers.");
}
});
由于某些原因,但是,我的console.log返回为未定义。基本上,我需要知道productModifiers节点内有多少“类别”。所以在这种情况下,它应该返回4(侧面,浇头,完整和面包)。我似乎无法弄清楚我缺少的东西,这将使我能够弄清楚有多少个子节点
这对于获取节点数量非常有用。这就是说 - 我怎么能访问实际的节点名称? (即:面,面,面,面包)。 –
@JohnHubler Object.keys(json.productDetails.productModifiers [0])将包含节点名称。只需在获取其长度之前将其保存到变量:) – matt