使用JavaScript从Json对象访问数据

时间:2014-01-03 07:27:59

标签: javascript jquery json object jsonobject

我在下面的图片中显示了一些JSON。项目下有一个名为0的对象。

我想获取项目中的属性。如何使用jQuery或Javascript访问它?

enter image description here

这是我到目前为止所做的:

 jQuery.getJSON('http://localhost/magento/js/primitives/js/SpaceTreeRegion.json',
     function(jsonData) {
     jQuery.each(jsonData, function(currentRegionNode, jsonData) {
         alert(jsonData.items.product_name);
     });
}); 

此代码出错:jsonData.items.value is undefined

JSON是这样的:

  [
      {
          "category_id": "Clothes",
          "Items": [
              {
                  "product_id": 1,
                  "price": 50,
                  "product_name": "Shirts"
              },
              {
                  "product_id": 2,
                  "price": 60,
                 "product_name": "T-Shirt"
              }
          ]
     }
 ]

我希望对象中的每个product_id访问priceproduct_nameitems

5 个答案:

答案 0 :(得分:4)

试试这段代码

  jQuery.getJSON('your json url', function(yourJsonData) {
     jQuery.each(yourJsonData[0].Items, function(key, customData) {
            alert(customData.product_name);
    });
 });     

答案 1 :(得分:2)

这段代码可以给你一个想法:

实施例: alert(jsonData[0].Items[0].product_id);

尝试这个$ .each然后:

`$.each(jsonData[0].Items, function (i, item) {
            alert(item.product_id);
            alert(item.price);
            alert(item.product_name);
        });`

答案 2 :(得分:1)

试试这个json文件:

 {
      "category_id": "Clothes",
      "Items": [
          {
              "product_id": 1,
              "price": 50,
              "product_name": "Shirts"
          },
          {
              "product_id": 2,
              "price": 60,
             "product_name": "T-Shirt"
          }
      ]
 }

然后解析它:

$.each(jsonData.Items, function(index, value){
  alert(value.product_name)
});

答案 3 :(得分:0)

多数民众赞成因为物品没有价值。

for(var i=0; i<jsonData.items.length; i++){
    var youritem = jsonData.items[i]; /*this is your item*/
    console.log(jsonData.items[i].product_name);/*one of your product names*/
}

这是你的代码:

 jQuery.getJSON('http://localhost/magento/js/primitives/js/SpaceTreeRegion.json',
       function(jsonData) {
 jQuery.each(jsonData, function(currentRegionNode, jsonData) {

                   alert(this.items);/*this is an object also*/
                   alert(this.items[0].product_name)/*this is your child arrays property*/
                   alert(this.items[1].product_name)/*this is second one*/

});

});

所以你可以再次循环this.items

答案 4 :(得分:0)

each循环更改为类似的内容 -

jQuery.each(jsonData['Items'], function(currentRegionNode, jsonItemData) {
    alert(jsonItemData.product_name); // will output 'Shirts ', 'T-Shirt'
});