使用带有Javascript的键遍历JSON responseText数组

使用带有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> 这是剧本。有人知道如何

使用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>
这是剧本。有人知道如何使用数组键作为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