如何获取javascript对象的主要属性?

时间:2012-12-07 06:06:42

标签: javascript jquery arrays json object

我正在开发一个从第三方网站提取数据的网站。我的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属性允许我这样做,但它的额外数据不是'需要。

4 个答案:

答案 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);
}