[转载]简简单单——无限级数据JSON格式及JS解析 – 壊小子 – 博客园.
公司要做个Flash效果的页面,需要个无限级树,显示用户邀请的好友及其下线,由此就构成了无限级的关系,可能下线有无限多。Flash需要 JSON格式的数据,于是,就有了如下代码:(PHP实现,C#类似,JSON库自己去下吧~~)
代码
以上代码返回一个JSON字符串,如:
{‘0’:{‘fuid’:’950′,’funame’:’郭梓原’,’furl’:’/home /space.php?uid=950′,’fchilds’:{‘invitezcount’:0}},’invitezcount’:1,’invitecount’:1}
这里只查询了一个
接下来用JS进行以下解析:
代码
<script type=“text/JavaScript“ src=“http://ajax.googleapis.com/ajax/libs/JQuery/1/JQuery.min.js“></script>
<script type=“text/JavaScript“>
//fuid 用户ID
//funame 用户名称
//furl 用户主页地址
//invitezcount 每 个用户的子类数量
//invitecount 该用户的所有下级数量
var str = “”;
function GetShow(obj,qi,index){ for (var one in obj)
{
for(var key in obj[one])
{
index++;
if(key==“fchilds“&&obj[one][key][‘invitezcount‘]!=0){
var aqi = qi;
if(index>1)aqi+=“ “
if(key==“fuid“){
str += qi+key+“=“+obj[one][key] + “,“;
}else{
str += key+“=“+obj[one][key] + “,“;
}
if(key == “furl“){
str+=“<br/>“;
}
str+=qi+one+“=“+obj[one]+“<br/>“;
}
}
}
//固定参数do=charadegarden&action=getinfo&invite=1,fuid为测试时使用,不填 写将调用系统当前登录的用户ID
var url = ‘http://localhost/home/space.php?do=charadegarden&action=getinfo&invite=1&fuid=344‘;
$.get(url,function(html){ //获得json并转为对象
if(html){
var obj = eval(“[“+html+“]“);
GetShow(obj[0],“”,1)
document.write(str);
document.write(“<br/><br/><br/><br/>“);
document.write(“<b>JSON 格式:</b><br/>“);
document.write(html);
}
<script type=“text/JavaScript“>
//fuid 用户ID
//funame 用户名称
//furl 用户主页地址
//invitezcount 每 个用户的子类数量
//invitecount 该用户的所有下级数量
var str = “”;
function GetShow(obj,qi,index){ for (var one in obj)
{
for(var key in obj[one])
{
index++;
if(key==“fchilds“&&obj[one][key][‘invitezcount‘]!=0){
var aqi = qi;
if(index>1)aqi+=“ “
GetShow(obj[one][key],aqi,index)
}
if(key==“fuid“){
str += qi+key+“=“+obj[one][key] + “,“;
}else{
str += key+“=“+obj[one][key] + “,“;
}
if(key == “furl“){
str+=“<br/>“;
}
}
}
str+=qi+one+“=“+obj[one]+“<br/>“;
}
}
}
//固定参数do=charadegarden&action=getinfo&invite=1,fuid为测试时使用,不填 写将调用系统当前登录的用户ID
var url = ‘http://localhost/home/space.php?do=charadegarden&action=getinfo&invite=1&fuid=344‘;
$.get(url,function(html){ //获得json并转为对象
if(html){
var obj = eval(“[“+html+“]“);
GetShow(obj[0],“”,1)
document.write(str);
document.write(“<br/><br/><br/><br/>“);
document.write(“<b>JSON 格式:</b><br/>“);
document.write(html);
}
});
</script>这样,两个无限级的操作就完成了,结果截图:
珍惜劳动成果,虽说内容不 多,可是也是一个一个字打上的,转载请注明!!