我有一个JSON响应,但可以';我不能解析它。需要帮助。没有JQUERY,没有原型。只是Javascript

我有一个JSON响应,但可以';我不能解析它。需要帮助。没有JQUERY,没有原型。只是Javascript,javascript,json,parsing,callback,Javascript,Json,Parsing,Callback,所以我有一些关于JSON的问题 setupdata({"NON-RELIGOUS ORGANIZATIONS":{"23":["NON-RELIGOUS ORGANIZATIONS","Does this Loce test 2","",null]},"YARD SALES":{"1":["YARD SALES","yard sale","1332599400",null],"22":["YARD SALES","LOCKING TEST YARD SALE a change and more"

所以我有一些关于JSON的问题

setupdata({"NON-RELIGOUS ORGANIZATIONS":{"23":["NON-RELIGOUS ORGANIZATIONS","Does this Loce test 2","",null]},"YARD SALES":{"1":["YARD SALES","yard sale","1332599400",null],"22":["YARD SALES","LOCKING TEST YARD SALE a change and more","1331814600",null],"21":["YARD SALES","Generic Yard Sale Title","",null]}})
我正在用……处理它

function setupdata(data){

   alert(data.length);
   for(i=0; i<data.length; i++) {
   newdiv = document.createElement("DIV");
   newdiv.setAttribute("id","cat"+i);
   newdiv.innerHTML(\'test\');
   document.getElementById(\'divmiddle\').appendChild(newdiv);
   }
 }
和生成的JSON

setupdata({"NON-RELIGOUS ORGANIZATIONS":{"23":[false,"Does this Loce test 2","2"]},
"YARD SALES":{
     "1":["03\/24\/12 10:30 am","yard sale","0"]
     ,"22":["03\/15\/12 8:30 am","LOCKING TEST YARD SALE a change and more","0"],
     "21":[false,"Generic Yard Sale Title","0"]}})
for(var key in data){//OUTER LOOP FOR THE MAIN OBJECTS
  divkey = document.createElement("DIV");
  divkey.setAttribute("id",key);
  divkey.style.fontSize = \'13px\';

  divkey.style.textDecoration = \'underline\';
  divkey.style.paddingTop = \'3px\';
  divkey.style.paddingBottom = \'5px\';
  divkey.style.position = \'relative\';
  divkey.innerHTML = key;
      document.getElementById(\'divmiddle\').appendChild(divkey);

  for(var mykey in data[key]){//INNER LOOP FOR THE INNER OBJECTS
         divkey = document.createElement("DIV");
     divkey.setAttribute("id",mykey);
         divkey.style.fontFamily = \'Verdana\';
         divkey.style.fontSize = \'11px\';
     divkey.style.paddingBottom = \'5px\';

     divkey.style.position = \'relative\';
     divkey.innerHTML = +data[key][mykey][1]+\' -- \' + data[key][mykey][0];
         document.getElementById(\'divmiddle\').appendChild(divkey);
   }
  }
 }
和用于解析JSON的JS

setupdata({"NON-RELIGOUS ORGANIZATIONS":{"23":[false,"Does this Loce test 2","2"]},
"YARD SALES":{
     "1":["03\/24\/12 10:30 am","yard sale","0"]
     ,"22":["03\/15\/12 8:30 am","LOCKING TEST YARD SALE a change and more","0"],
     "21":[false,"Generic Yard Sale Title","0"]}})
for(var key in data){//OUTER LOOP FOR THE MAIN OBJECTS
  divkey = document.createElement("DIV");
  divkey.setAttribute("id",key);
  divkey.style.fontSize = \'13px\';

  divkey.style.textDecoration = \'underline\';
  divkey.style.paddingTop = \'3px\';
  divkey.style.paddingBottom = \'5px\';
  divkey.style.position = \'relative\';
  divkey.innerHTML = key;
      document.getElementById(\'divmiddle\').appendChild(divkey);

  for(var mykey in data[key]){//INNER LOOP FOR THE INNER OBJECTS
         divkey = document.createElement("DIV");
     divkey.setAttribute("id",mykey);
         divkey.style.fontFamily = \'Verdana\';
         divkey.style.fontSize = \'11px\';
     divkey.style.paddingBottom = \'5px\';

     divkey.style.position = \'relative\';
     divkey.innerHTML = +data[key][mykey][1]+\' -- \' + data[key][mykey][0];
         document.getElementById(\'divmiddle\').appendChild(divkey);
   }
  }
 }

**我希望这能帮助某人找到一个完整的解决方案,因为到处都有部分帖子。**

基本上
{}
对象
不是
数组
,因此它没有
长度
属性

但是你可以用它来循环

for (var key in data) {
    // your code ....
}
编辑:回答您的评论

您仍然可以使用
对象
,只需使用此样式即可

 {'data': { /* your json data */ }} // when there's data 
 {'data': null}                     // when no data available 
然后在你的功能中

if (data.data) {
    for(var key in data.data) {
        // your code
    }
}

警报(数据[“非救济组织”][“23”]长度);这些反斜杠是在你的实际代码中,还是以某种方式潜入本文?是的,这些是反斜杠,因为我处理了生成PHP文件的过程……那么我应该改变方法来返回数组而不是对象吗?@BostonMacOSX你仍然可以使用
对象
。下面是我的方法`{'data':{/*您的json数据*/}////当有数据{'data':null}//当没有可用数据时`然后在代码中只需检查`if(data.data){//您的代码}`