从JSON获取密钥和值的更清洁方法

时间:2013-12-08 17:49:19

标签: json key-value

目前我采用JSON字符串的方式,我“不知道内容”并拉动键和值如下:

var arr     =   [{"manager_first_name":"jim","manager_last_name":"gaffigan"}];
var arrLen  =   arr.length;
for(var i = 0; i < arrLen; i++){
    var myKeys      =   Object.keys(arr[i]);
    var keysLen     =   myKeys.length;
    for(var x = 0; x < keysLen; x++){
        keyName     =   myKeys[x];
        keyValueStr =   "arr[i]."+keyName;
        keyValue    =   eval(keyValueStr);
        console.log(keyName+':'+keyValue);
    }
}

必须有一种更清洁,更有效的方法。任何建议都将不胜感激。

3 个答案:

答案 0 :(得分:1)

使用jQuery,您可以使用http://api.jquery.com/jQuery.parseJSON/&amp; Object.keys - 比:

var obj = jQuery.parseJSON('{"manager_first_name":"jim","manager_last_name":"gaffigan"}');
var keys = Object.keys(obj);
jQuery.each(keys,function(k, v){
    console.log(v);
    console.log(obj[v]);
});

答案 1 :(得分:0)

创建一个对象并使用您的JSON初始化它:

var arr     =   [{"manager_first_name":"jim","manager_last_name":"gaffigan"}];
var JSONObject = new MyJSONObject(arr);

在构造函数中,设置对象的属性。

答案 2 :(得分:0)

您可以使用for-in loop迭代对象的可枚举属性,以任意顺序

var arr = [{"manager_first_name":"jim","manager_last_name":"gaffigan"}];
for (var i = 0; i < arr.length; i++) {
    var currentObj = arr[i];
    for (var item in currentObj) {
        console.log(item + " : " + currentObj[item]);
    }
}

如果你的数组总是只有一个项目,你可以省略最外层的for循环,只需使用arr[0]

var currentObj = arr[0];
for (var item in currentObj) {
    console.log(item + " : " + currentObj[item]);
}