关于json解析的问题

zhzc_zhzc 2012-11-16 02:53:00

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>TestJQuery</title>



<script src="D:/jQuery/jquery-1.7.2.js" type="text/javascript"></script>

<script type="text/javascript">
var j='{"type":"hbox","width":"40%","height":"370","grep":"10","align":" ","valign":" ","children":[{"type":"atom","width":"95%","height":"94%","grep":"10","align":" ","valign":" ","children":[]}]}';


$(document).ready(function(){
divlayout(j);
});
function divlayout(j){
var obj=eval('('+j+')');

idnum(0,obj,0);
}

var layerid="";
//div的层id
var ladiid;
//同一层下的div的id
var obj2;

function idnum(ladiid,obj,layerid,obj2) {

//第一层直接追加div
if(layerid==""){
$("#div0").append('<div id="div'+layerid+ladiid+'" style=" border:1px #000 solid ;float:left;align:'+obj.align+';valign:'+obj.valign+';width:'+obj.width+';height:'+obj.height+';"></div>');
//alert("#div"+layerid+ladiid);
layerid=String(layerid)+String(ladiid);
}else{
if(obj.type=="hbox"){
if(obj.align=="true"&&ladiid!=0){
$("#div"+layerid).append('<div id="div'+layerid+ladiid+'" style=" border:1px #000 solid;float:left;align:'+obj.align+';valign:'+obj.valign+';width:'+obj.width+';height:'+obj.height+'; margin-left:'+obj.grep+'; margin-top:'+obj2.grep+';"></div>');
alert(obj2.grep);
//alert("#div"+layerid+ladiid);
layerid=String(layerid)+String(ladiid);
}else{
$("#div"+layerid).append('<div id="div'+layerid+ladiid+'" style=" border:1px #000 solid;float:left;align:'+obj.align+';valign:'+obj.valign+';width:'+obj.width+';height:'+obj.height+'; margin-left:'+obj.grep+'; margin-top:'+obj.grep+';"></div>');
//alert("#div"+layerid+ladiid);
layerid=String(layerid)+String(ladiid);

}

}else if(obj.type=="vbox"){
$("#div"+layerid).append('<div id="div'+layerid+ladiid+'" style=" border:1px #000 solid;align:'+obj.align+';valign:'+obj.valign+';float;left;width:'+obj.width+';height:'+obj.height+'; margin-left:'+obj.grep+';margin-top:'+obj.grep+'; "></div>');
//alert("#div"+layerid+ladiid);
layerid=String(layerid)+String(ladiid);
}else if(obj.type=="atom"){
$("$div"+layerid).append('<div id="div'+layerid+layiid+'" style="border:1px #000 solid; align:'+obj.align+';float;left;valign:'+obj.valign+';width:'+obj.width+';height:'+obj.height+';margin-left:'+obj.grep+';margin-top:'+obj.grep+';"></div>');
layerid=String(layerid)+String(ladiid);
}else{

}

}


$.each(obj.children, function(i, item) {



idnum(i,item,layerid,obj);

});



}
</script>

</head>
<body>
<div id="div0"></div>

</body>
</html>



这是一个json解析的程序,在这里面想递归解析出type=atom这一层,但是没有实现,还请各位帮帮忙了
...全文
70 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
kinghome 2012-11-16
  • 打赏
  • 举报
回复

var j='{"type":"hbox","width":"40%","height":"370","grep":"10","align":"   ","valign":"   ","children":[{"type":"atom","width":"95%","height":"94%","grep":"10","align":"   ","valign":"   ","children":[]}]}';

function checkJson(json){
	var result = null;
	try{
		result = JSON.parse(json);
	}
	catch(e){
		result = eval('('+json+')');
	}
	return result;
}

function checkObj(obj){
	if(obj){
		for(var i in obj){
			if(typeof obj[i] == "object"){
				checkObj(obj[i]);	
			}else{
				alert(obj[i]);
			}
		}	
	}	
}

window.load=checkObj(checkJson(j));

zhzc_zhzc 2012-11-16
  • 打赏
  • 举报
回复
这是一个json解析的程序,在这里面想递归解析出type=atom这一层,但是没有实现,还请各位帮帮忙了

61,115

社区成员

发帖
与我相关
我的任务
社区描述
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
社区管理员
  • HTML(CSS)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧