使用带有Javascript的键遍历JSON responseText数组
使用Javascript。我试图循环使用JSON编码的数组。以下是该阵列的一个示例:使用带有Javascript的键遍历JSON responseText数组,javascript,arrays,json,loops,Javascript,Arrays,Json,Loops,使用Javascript。我试图循环使用JSON编码的数组。以下是该阵列的一个示例: {"test1":"some info","test2":"more info","test3":"more stuff"} 在每个循环中,我检查是否存在带有键名的DIV id <div id="test1"></div> <div id="test2"></div> <div id="test3"></div> 这是剧本。有人知道如何
{"test1":"some info","test2":"more info","test3":"more stuff"}
在每个循环中,我检查是否存在带有键名的DIV id
<div id="test1"></div>
<div id="test2"></div>
<div id="test3"></div>
这是剧本。有人知道如何使用数组键作为DIV id的名称从responseText循环数组吗
<script>
function loadInfo() {
var req = new Request({
method: 'get',
url: 'getinfo.php,
noCache: true,
onRequest: function() {
for (var key in responseText) {
if (document.getElementById(key)) {
$(key).set('html', 'Loading');
}
}
},
onComplete: function(responseText, responseHtml) {
if (JSON.decode(responseText) != null) {
var data = JSON.decode(responseText);
for (var key in responseText) {
if (document.getElementById(key)) {
$(key).set('html', data[key]);
}
}
}
},
onFailure: function() {
for (var key in responseText) {
if (document.getElementById(key)) {
$(key).set('html', '-');
}
}
}
}).send();
}
window.addEvent('domready', function() {
loadInfo();
});
</script>
函数loadInfo(){
var req=新请求({
方法:“get”,
url:'getinfo.php,
是的,
onRequest:function(){
for(响应文本中的var键){
if(document.getElementById(键)){
$(key).set('html','Loading');
}
}
},
onComplete:函数(responseText、responseHtml){
if(JSON.decode(responseText)!=null){
var data=JSON.decode(responseText);
for(响应文本中的var键){
if(document.getElementById(键)){
$(key).set('html',data[key]);
}
}
}
},
onFailure:function(){
for(响应文本中的var键){
if(document.getElementById(键)){
$(key.set('html','-');
}
}
}
}).send();
}
addEvent('domready',function(){
loadInfo();
});
在迭代键之前,必须对JSON进行解码。那么,你说:
for(var key in responseText) {
替换为:
for(var key in data) {
假定
var data = JSON.decode(responseText);
另外,一些回调函数没有将responseText
指定为参数。如果要为每个回调访问此函数,则必须显式地将responseText
作为参数。例如:
onRequest: function(){
应该是:
onRequest: function(responseText){
我认为问题在于您使用了错误的变量名
var data = JSON.decode(responseText);
for(var key in responseText) {
应该读
var data = JSON.decode(responseText);
for(var key in data) {
请注意,它不是在中的
之后的responseText
,而是读取数据
您确定不需要JSON.parse
?这将把JSON响应解析成一个javascript对象,您可以对该对象使用for/in
var data = JSON.parse(responseText);
另外,在url:
url:'getinfo.php', // Closed the quote
谢谢你指出最后的引号。事实上,我的现场剧本中并没有遗漏这一点。
url:'getinfo.php', // Closed the quote