我正在开发一个从第三方网站提取数据的网站。我的PHP提取数据并使用非常好的JSON对象进行响应。 然后我使用$ .each迭代对象并对数据进行排序。问题是我不知道如何拉主要财产。
示例JSON响应:
{
"1234": {
"all_sales": {"11/12/2012":"1211.33","11/13/2012":"2012.45"},
"sales_total":"323.78",
"store_number":"1234",
},
"5678": {
"all_sales": {"11/12/2012":"1211.33","11/13/2012":"2012.45"},
"sales_total":"323.78",
"store_number":"5678",
},
}
1234和5678是商店编号。 我想要的是不需要store_number属性,只知道它是什么。 在PHP中,它将类似于:
for ($data as $store_number => $store_data){
//do whatever
}
我这样做有各种各样的原因,但主要是因为我可以简单地调用data.1234或像前10那样构建一个销售数组。现在store_number属性允许我这样做,但它的额外数据不是'需要。
答案 0 :(得分:3)
我想你想使用$.each
回调函数的第一个参数:
var a = { "1234": { ... }, "5678": { ... } };
$.each(a, function(main, val) {
console.log(main); // prints "1234" and "5678"
});
答案 1 :(得分:1)
for x in loops是这里工作的正确工具。我喜欢jQuery,但是当JavaScript覆盖它时,不要甩掉JQ锤子。
var myObj = {
"1234": {
"all_sales": {"11/12/2012":"1211.33","11/13/2012":"2012.45"},
"sales_total":"323.78",
"store_number":"1234",
},
"5678": {
"all_sales": {"11/12/2012":"1211.33","11/13/2012":"2012.45"},
"sales_total":"323.78",
"store_number":"5678",
},
}
for (var x in myObj) {
alert('property:' + x);
alert('property.sales_total:' + myObj[x].sales_total);
}
答案 2 :(得分:1)
如果我理解正确,你想要一个值为'1234','5678'等的数组:
myArray=$.map(myJSON,function(value,key){return key;});
[编辑]再想一想,这可能更接近你所追求的目标:
myArray=$.map(myJSON,function(value,key){
// do whatever
});
正如@Ian在评论中所说,您可能希望将所有处理分组到一个循环中(如我的示例中的$ .each或$ .map)。
答案 3 :(得分:0)
for (var key in object) {
console.log(key);
}