我有一个JSON响应,但可以';我不能解析它。需要帮助。没有JQUERY,没有原型。只是Javascript
所以我有一些关于JSON的问题我有一个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"
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){//您的代码}`