使用for循环检索json元素在jquery中给出了undefied

时间:2016-06-23 10:45:15

标签: jquery json

我有一个来自Java的JSON,如下所示:

[{
    "col_name_1": "Name",
    "col_value_1": "Deepu",
    "col_name_2": "Age",
    "col_value_2": "22",
    "col_name_3": "gender",
    "col_value_3": "Male"
}]

有时,JSON的内容(键值对)数量可能会增加或减少。所以我决定在jQuery中使用for loop检索数据。我的代码是:

var tabdata = $.parseJSON(data);
var ele_count = Object.keys(tabdata[0]).length; 
ele_count = parseInt(ele_count) / 2;  //total key-value pair

for (var j = 1; j <= parseInt(ele_count); j++) {
    var cn = "col_name_" + j;
    var cv = "col_value_" + j;
    alert(tabdata[0].cn);
    alert(tabdata[0].cv);
}

两个警报都提供undefined。但是使用 tabdata[0].col_name_1tabdata[0].col_value_1等会提供所需的结果。问题出在for循环内。有人能帮助我吗?

5 个答案:

答案 0 :(得分:2)

undefined对象的代码.cn will try to get property cn中。因此,请使用bracket notation在变量的帮助下访问对象属性。

alert(tabdata[0][cn]);
alert(tabdata[0][cv]);

答案 1 :(得分:1)

通过变量访问对象的属性时,需要使用括号表示法。试试这个:

LinkButton

答案 2 :(得分:1)

以下是工作示例:https://jsfiddle.net/y4x93mdq/

alert(tabdata[0][cn]);
alert(tabdata[0][cv]);

答案 3 :(得分:0)

尝试jquery each函数

    var obj = [{"col_name_1":"Name","col_value_1":"Deepu","col_name_2":"Age","col_value_2":"22","col_name_3":"gender","col_value_3":"Male"}] ;

$.each(obj[0],function(i,v){
console.log(v);
});

demo

答案 4 :(得分:0)

在for循环中使用以下内容

tabdata[0][cn]