我有一个来自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_1
或tabdata[0].col_value_1
等会提供所需的结果。问题出在for
循环内。有人能帮助我吗?
答案 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);
});
答案 4 :(得分:0)
在for循环中使用以下内容
tabdata[0][cn]