是否可以在JSON中的另一个密钥中分配密钥?

时间:2014-02-11 09:04:10

标签: jquery json list key key-value

是否可以在JSON中的密钥中使用密钥(如果是这样)如何在jQuery中访问它? 这是我的代码:

{
    "product": [{
        "category": "Clothing",
        "items": [{
            "name": "Shirt",
            "price": "$4.99"
        }]
    }, {
        "category": "Food",
        "items": []
    }, {
        "category": "Electronics",
        "items": []
    }]
}

这是我用来访问键值的jQuery:

$.getJSON('../JSON/cwdata.json', function (cwData) {
    $newData = cwData;        
    $.each($newData, function (key, value) {
        if (key === 'product[0].items[0]') {
            $('#product').append('<li>'+ value +'</li>')
    });
});

“#product”是无序列表。

注意:我将我的JSON代码更改为Salman A正确回答的代码。

2 个答案:

答案 0 :(得分:1)

是的,这是可能的。它应该是这样的。

"availability": ["six", "five"],

   "connectivity": { "infrared": true,
   "gps" : true 
   }

答案 1 :(得分:0)

您的JSON无效;数组不能将字符串作为键。它需要看起来像:

{
    "product": {
        "Clothing": {
            "Shirt": "$4.99"
        },
        "Food": {},
        "Electronics": {}
    }
}

或者可能是这样的:

{
    "product": [
        {
            "category": "Clothing",
            "items": [{
                "name": "Shirt",
                "price": "$4.99"
            }]
        }, {
            "category": "Food",
            "items": []
        }, {
            "category": "Electronics",
            "items": []
        }
    ]
}

要迭代这些数据,请使用$.each几个级别:

$.each(cwData.product, function (i, product) {
    console.log(product.category + " (" + product.items.length + " items)");
    $.each(product.items, function (i, item) {
        console.log("\t" + item.name + ": " + item.price);
    });
});
// output:
//
// Clothing (1 items)
//     Shirt: $4.99
// Food (0 items)
// Electronics (0 items)