我有以下JSON对象:
{
"a1_1_on" : "on",
"a1_1_thr" : "",
"a1_2_on" : "on",
"a1_2_thr" : "",
}
我希望使用for循环检查字段,例如:
for (var i=1; i<2; i++) {
//alarm
var al = 'ai_' + i + '_on';
//alarm threshold
var althr = 'ai_' + i + '_thr'
//console.log(form_infos.al);
if(form_infos.al == "on" && form_infos.althr == "") {
alert("Alarm for Analog " + i + "is on and you did not specified a threshold. Please specify a threshold before submittiing");
return false;
}
}
但如果我undefined
,则会显示console.log(form_infos.al)
。有什么建议吗?
答案 0 :(得分:3)
您的代码中存在多个错误。
首先,在JSON中:''在键和值之间使用,所以它必须是
{
"a1_1_on": "on",
"a1_1_thr": "",
"a1_2_on": "on",
"a1_2_thr": "",
}
顺便说一下,这不是JSON,而是一个简单的Javascript对象。 JSON将是该Object的String表示。
第二,您索引元素的字符串有拼写错误,您有
"a1..."
在您的对象中但您使用
var al = 'ai_' + i + '_on';
代码中的(我代替1)
第三,al不是form_infos的子对象,而是包含字符串的变量。要使用字符串索引访问子对象,请使用
form_infos[al]
而不是
form_infos.al
就是这样
答案 1 :(得分:1)
我会使用jQuery。例如:
var obj = {
"a1_1_on" : "on",
"a1_1_thr" : "",
"a1_2_on" : "on",
"a1_2_thr" : ""
}
$.each(obj,function(i,value) {
...
});