Javascript 简单JSON数组不工作
这个问题应该很容易解决,但通过反复试验和谷歌搜索,我没有答案。我试图创建一个简单的循环,以显示JSON变量中的值Javascript 简单JSON数组不工作,javascript,php,json,Javascript,Php,Json,这个问题应该很容易解决,但通过反复试验和谷歌搜索,我没有答案。我试图创建一个简单的循环,以显示JSON变量中的值 var obj,i,j,x=0; var obj=JSON.parse(); 用于(我在对象中支付的利息){ x+=obj[i]。支付的利息; } //文件。编写(obj[8]。支付利息); document.getElementById(“demo”).innerHTML=x; 为了通过索引i访问obj数组中的每个项目(使用obj[i]),您需要迭代数组的所有可能索引值:0到o
var obj,i,j,x=0;
var obj=JSON.parse();
用于(我在对象中支付的利息){
x+=obj[i]。支付的利息;
}
//文件。编写(obj[8]。支付利息);
document.getElementById(“demo”).innerHTML=x;
为了通过索引i
访问obj
数组中的每个项目(使用obj[i]
),您需要迭代数组的所有可能索引值:0
到obj.length-1
for(变量i=0;i
这将指示JavaScript解释器:
0
开始obj.length
之前停止(即在obj.length-1
处结束),以及1
由于obj是一个JSON对象数组,因此可以使用forEach循环访问每个元素
var obj=[{“定期支付”:2,“原则余额”:416997.37661705,“原则支付”:0,“ttl原则支付”:1002.6233829502,“利息支付”:0,“ttl原则支付”:866.8301587773},{“定期支付”:3,“原则余额”:416600.29804453,“原则支付”:538.0263095206,“ttl原则支付”:1540.6496925323,“利息支付”:128396.7004669,“已支付利息”:1263.5306200746},
x=0;
对象forEach(函数(元素、索引){
x+=支付的利息;
});
console.log(x);
您的代码应该是
for (i in obj) {
x += obj[i].interest_paid;
}
obj
是解析后的json数组,您应该在其中循环。obj.interest\u paid
不存在,因为obj
是一个对象数组
这是一个
编辑:
正如@nnnnnn建议的那样,字符串周围应该有引号
JSON.parse('<?php echo json_encode($_SESSION['amort_JSON']) ?>');
JSON.parse(“”);
您正在分析不正确的JSON
对象。它应该是for(obj中的var i){…}
而不是for(obj中的var i.已支付利息){…}
工作演示
var jsonObj=[{
“定期付款”:“2”,
“平衡原则”:416997.37661705,
“支付原则”:0,
“ttl原则”:1002.6233829502,
“已支付利息”:0,
“已支付利息”:866.830158773
}, {
“定期维护”:3,
“平衡原则”:416600.29804453,
“支付原则”:538.02630958206,
“ttl_原则支付”:1540.6496925323,
“已付利息”:396.7004612869,
“已支付利息”:1263.5306200746
}, {
“定期维护”:4,
“平衡原则”:416203.59758324,
“支付原则”:538.40406076641,
“ttl_原则支付”:2079.0537532987,
“已支付利息”:396.322710256,
“已支付利息”:1659.8533301772
}];
var x=0;
for(jsonObj中的变量i){
x+=jsonObj[i]。已支付利息;
}
console.log(x)
没有数组,这是无效的JSONMine用JavaScript提供解析后的值,而不是显示PHP中的echo
?假设你有一个数组返回了obj的值。利息支付
就不存在了。我对学习所有这些伟大的东西非常陌生。blow脚本返回正确的值。document.getElementById(“demo”).innerHTML=obj[0]。principle_balance+“”+obj[3]。principle_paid;
for(i in obj.interest_paid)
应该是(i in obj)您可以循环对象。还请注意,obj.interest_paid
中的未定义。从JSON.parse()中删除JSON.parse()
)
。json_encode()
的输出应该已经是有效的JS,但是如果您想将其视为json并对其进行解析,则需要在其周围加上引号作为json.parse(“”)
。