使用变量选择JSON数组元素

时间:2014-03-27 12:24:43

标签: javascript jquery ajax arrays json

是否可以提供变量来选择JSON数组元素中的特定元素以便选择它?

假设我有很多用户:

"users": [
    { "id":"000000", "uname": "admin", "password": "admin", "phash": "b109f3bbbc244eb82441917ed06d618b9008dd09b3befd1b5e07394c706a8bb980b1d7785e5976ec049b46df5f1326af5a2ea6d103fd07c95385ffab0cacbc86",
        "profile": {
            "fullname"  : "Admin Admin",
            "datejoined": "01-01-2014",
            "reputation": "100",
            "displaypic": "http://www.google.com/logo.png",
            "cart": {
                "Cid" : "1000000",
                "item": [
                    { "Iid": "00000001", "quantity": "10" }
                ]
            }
        }
    },

是否可以通过使用jQuery提供用户名来选择上述元素?

我试过了: 注意:jQuery中的uname是一个带有" admin"的变量。分配

$.getJSON('ssUsers.json', function (data) {

        $(data.users[uname].profile.cart.item).each(function () {
            ++cartItems;
        });

运气不好:

[错误] TypeError:' undefined'不是一个对象(评估' data.users [uname] .profile')

2 个答案:

答案 0 :(得分:1)

使用grep

thisUser = $.grep(data.users, function(e) { return e.uname==uname});

答案 1 :(得分:0)

  

试试这个:

$.getJSON('ssUsers.json', function (data) {

        for(i=0; i<data.users.length ; i++){
            $(data.users[i].uname.profile.cart.item).each(function () {
                ++cartItems;

            }
        });