php使用 js格式解析,php 无限级数据JSON格式及JS解析_PHP教程
Flash需要JSON格式的数据,于是,就有了如下代码:(PHP实现,C#类似,JSON库自己去下吧~~)
复制代码 代码如下:
//–查询用户下线信息,返回JSON,用于flash
if(!empty($_GET[‘action’])&&!empty($_GET[‘invite’])){
//固定参数请求才会返回信息
if($_GET[‘action’]==’getinfo’&&$_GET[‘invite’]==1){
//数据实体,一个实体类
class UcInvite{
//—显示用的数据信息
public $fuid; //用户id
public $funame; //用户名
public $furl; //用户空间地址
//—显示用的数据信息
public $fchilds; //子类集合
}
$invitecount = 0; //总数量,用于记录全部下线数量
//递归实现方法
function GetShowTreeInvite($uid){
global $_SGLOBAL,$invitecount;
//组织sql语句并查询,表中fuid是下线的id,uid是父id,fusername是用户名字
$inv_sql = “select fuid,fusername from “.tname(“invite”).” where uid = “.$uid;
$inv_query = $_SGLOBAL[‘db’]->query($inv_sql);
//下表及返回数组
$index = 0;
$inviteTree = Array();
$invitezcount = 0; //每个子类下的数量
//循环添加信息到数组
while($v = $_SGLOBAL[‘db’]->fetch_array($inv_query)){
$ui = new UcInvite();
$ui->fuid = $v[‘fuid’];
$ui->funame = $v[‘fusername’];
$ui->furl = “/home/space.php?uid=”.$v[‘fuid’];
//调用自己,递归查询子类信息
$ui->fchilds=GetShowTreeInvite($v[‘fuid’]);
//插入返回的数组中
$inviteTree[$index]=$ui;
$index++;
$invitecount++;
$invitezcount++;
}
//记录当前下线的下线数量
$inviteTree[‘invitezcount’] = $invitezcount;
//返回数组信息
return $inviteTree;
}
$fuid = empty($_GET[‘fuid’])?$space[uid]:$_GET[‘fuid’];
//根据当前登录用户ID查询信息,并返回一个集合
$inviteTree = GetShowTreeInvite($fuid);
//记录总下线数
$inviteTree[‘invitecount’] = $invitecount;
//引入json库,这里用的是Services_JSON
//因为并不确定服务器都是PHP5.2以上版本,所以没有用自带的JSON函数
require_once(‘../plugins/JSON/JSON.php’);
//json输出
$json = new Services_JSON();
echo $json->encode($inviteTree);
exit;
}else{
echo ‘请求参数错误!’;
exit;
}
}
//–查询用户下线信息,返回JSON,用于flash
以上代码返回一个JSON字符串,如:
{‘0’:{‘fuid’:’950′,’funame’:’郭梓原’,’furl’:’/home/space.php?uid=950′,’fchilds’:{‘invitezcount’:0}},’invitezcount’:1,’invitecount’:1}
这里只查询了一个
接下来用JS进行以下解析:
复制代码 代码如下:
//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 != ‘fchilds’){
if(key==”fuid”){
str += qi+key+”=”+obj[one][key] + “,”;
}else{
str += key+”=”+obj[one][key] + “,”;
}
if(key == “furl”){
str+=”
“;
}
}
}
if(one==”invitezcount”||one==”invitecount”){
str+=qi+one+”=”+obj[one]+”
“;
}
}
}
//固定参数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(“
“);
document.write(“JSON格式:
“);
document.write(html);
}
});
这样,两个无限级的操作就完成了,结果截图:
珍惜劳动成果,虽说内容不多,可是也是一个一个字打上的,转载请注明!!关注爱拼可乐吧
www.bkjia.comtrueTechArticleFlash需要JSON格式的数据,于是,就有了如下代码:(PHP实现,C#类似,JSON库自己去下吧~~) 复制代码 代码如下: //–查询用户下线信息,返回J…
php使用 js格式解析,php 无限级数据JSON格式及JS解析_PHP教程相关推荐
- Highmaps重庆地图数据JSON格式
Highmaps重庆地图数据JSON格式 Highmaps重庆地图数据JSON格式 下载链接: http://pan.baidu.com/s/19CmOu 密码: yz5b 重庆地图数据JSON
- JS使用XMLHttpRequest对象POST收发JSON格式数据
JavaScirpt中的XMLHttpRequest对象提供了对 HTTP 协议的完全访问,使用该对象可以在不刷新页面的情况与服务器交互数据.XMLHttpRequest是实现AJAX技术的关键对象, ...
- swift:使用NSJSONSerialization和SwiftyJSON两种方法解析网络返回的json格式数据
在我的博客(下面)两个实验的基础上,使用NSJSONSerialization和SwiftyJSON两种方法解析网络返回的json格式数据,参照视频实现的"天气信息"小实验 1 创 ...
- SpringCloud工作笔记047---FastJson解析多级JSON_FastJson解析嵌套JSON_FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换
JAVA技术交流QQ群:170933152 解析嵌套json,这里说一下: //下面可以通过解析多级json的方式,获取数据,插入到数据库 //JSONObject userJsonObj = JSO ...
- sql解析json格式字段、sql关联json格式字段,mysql解析json、sql解析json字符串
sql解析json格式字段.sql关联json格式字段,mysql解析json.sql解析json字符串 sql解析字符串 sql关联json中的某个字段 sql解析字符串 表名user_login ...
- Node.js:项目中的 package.json 格式
1. node.js 项目包下的 package.json : 实例: {"name" : "chatroooms","version" : ...
- [数据][json格式] 2016年统计用区划代码和城乡划分代码
[数据][json格式] 2016年统计用区划代码和城乡划分代码 2013 年的时候写过一篇 [数据][xml格式] 2012年统计用区划代码和城乡划分代码. 到了今天,我需要某省的省市县乡村五级数据 ...
- Highmaps上海地区地图数据JSON格式
Highmaps上海地区地图数据JSON格式 下载链接: http://pan.baidu.com/s/1c0sDblI 密码: anie 上海区域 Highmaps
- Highmaps的天津地图数据JSON格式
Highmaps的天津地图数据JSON格式 Highmaps的天津地图数据JSON格式 下载链接: http://pan.baidu.com/s/1eQgxECU password: tjmj 天津地 ...
最新文章
- 前端ui 后台管理系统 简洁_Github上前端不可不知的可视化后台管理系统(1)
- nano编辑器使用教程
- SQL语句AND 和 OR执行的优先级
- UDO report generate DDIC table
- FFmpeg中MPEG-4编码程序追踪,其他FFMPEG自带编码器同理
- [Css] 使用css如何拉伸字体?
- C++中static关键字作用总结
- 应用实战:从Redis到Aerospike,我们踩了这些坑
- 创业日记:进入电子商务领域,需未雨绸缪,更要步步谨慎
- 计算机网络(第七版)谢希仁编著 第四章课后答案详解
- 网站后端_Python+Flask.0003.FLASK快速入门之Hello Word?
- Eviews做ARIMA模型
- Activiti7修改内部缓存为redis
- 视频教程-办公自动化,不求人!-Office/WPS
- win10添加网络打印机_Win7系统添加网络共享打印机
- word打开html显示空白,电脑打开Word文档内容显示不全或显示空白怎么办
- 【12月原创】RT-thread - 柿饼UI学习心得分享
- 图灵 | 计算机器与智能
- Symantec Backup Exec 2010 Agent For Linux安装
- 大气快速辐射传输模型RTTOV12.2安装教程及心得体会
热门文章
- 送40本书,人人有份!
- Bengio亲自授课,英国皇家院士参与,这份机器学习在线课别错过丨免费
- 清华北大南大全面“线上开学”,10 大直播神器齐亮相!
- %matplotlib inline的含义
- CTFHUB HTTP请求方式 HTTP 请求方法, HTTP/1.1协议中共定义了八种方法(也叫动作)来以不同方式操作指定的资源。
- ACMNO.9求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字。 例如:2+22+222+2222+22222(n=5),n由键盘输入。 输入 n 输出 a=2 时
- Ping命令 参数介绍!
- 基于Pytorch的从零开始的目标检测 | 附源码
- 基于转移学习的图像识别
- 009-回归测试的测试范围是什么?