如何在json密钥中访问Json密钥

时间:2012-04-27 14:59:18

标签: javascript jquery json

我对JSON有疑问。我正在使用一个jquery插件,它预期JSON结构如下:

[   { key: "Id" },
            { key: "Username" },
                    { key: "Age" }
        ], 

但我的JSON看起来像是:

    [{
        "Employee1": 
        {
          "ID": 43036,
          "Name": XYZ,
          "Age": 21
        },
       "Employee2": 
        {
          "ID": 30436,
          "Name": MNP,
          "Age": 23
        }
    }]

现在我不想更改我的代码,是否有任何解决方案以便我可以在不使用“Employee”的情况下将Id,Name传递给我的插件json。 我需要我的JSON:

[        
        {
          "ID": 43036,
          "Name": XYZ,
          "Age": 21
        }, 
        {
          "ID": 30436,
          "Name": MNP,
          "Age": 23
        }
    ]

先谢谢

2 个答案:

答案 0 :(得分:0)

这样的东西?

var myObj = [{
        "Employee1": 
        {
          "ID": 43036,
          "Name": XYZ,
          "Age": 21
        },
       "Employee2": 
        {
          "ID": 30436,
          "Name": MNP,
          "Age": 23
        }
    }];

var jsonObj = [];
$.each(myObj[0], function(key, val){
     jsonObj.push({ key: val.ID });
     jsonObj.push({ key: val.Name });
     jsonObj.push({ key: val.Age });
}); 

答案 1 :(得分:0)

您需要一个简单的函数来推送对象内的值,

var data = [{
    "Employee1": {
        "ID": 43036,
        "Name": 'XYZ',
        "Age": 21
    },
    "Employee2": {
        "ID": 30436,
        "Name": 'MNP',
        "Age": 23
    }}];

data = data[0];
var output = [];
for (i in data) {
    output.push(data[i]);
}

DEMO

注意:您发布的JSON无效,XYZ和MNP是字符串值,我猜其他数字也是如此。我将验证留给您。