php递归json,php递归json类实例,php递归json_PHP教程

php递归json类实例,php递归json

本文实例讲述了php递归json类的实现方法。分享给大家供大家参考。

具体实现代码如下:

复制代码 代码如下:

/*

* @ anthor:QD

* @ time: 2013-09-27

*/

class json{

private $Arr = array(); //传入数组

//构造器

public function json($array)

{

if(!is_array($array)) return false;

$this->Arr = $array;

}

//解析主函数

public function MainArr()

{

$arr = $this->Arr;

if($this->TypeArr($arr))

{

$json = $this->NumArr($arr);

}

else

{

$json = $this->IndexArr($arr);

}

return $json;

}

//解析索引数组

public function IndexArr($arr)

{

$str ="";

foreach($arr as $k=>$value)

{

if(is_array($value))

{

if($this->TypeArr($value)) { $sun=$this->NumArr($value);}

else {$sun=$this->IndexArr($value);}

if(strpos($sun,"}") || strpos($sun,"]"))

{

$str .= """.$k."":".$sun.",";

}

else

{

$str .= """.$k."":"".$sun."",";

}

}

else

{

$str .= """.$k."":"".$value."",";

}

}

$str = "{".trim($str,",")."}";

return $str;

}

//解析数字数组

public function NumArr($arr)

{

$str = "";

foreach($arr as $value)

{

if(is_array($value))

{

if($this->TypeArr($value)) { $sun=$this->NumArr($value);}

else {$sun=$this->IndexArr($value);}

if(strpos($sun,"}") || strpos($sun,"]"))

{

$str .= $sun.",";

}

else

{

$str .= """.$sun."",";

}

}

else

{

$str .= """.$value."",";

}

}

$str = "[".trim($str,",")."]";

return $str;

}

//检验一个数组是不是严格数字索引

public function TypeArr($arr)

{

if(array_values($arr) === $arr) return true;

return false;

}

}

?>

希望本文所述对大家的PHP程序设计有所帮助。

http://www.bkjia.com/PHPjc/920607.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/920607.htmlTechArticlephp递归json类实例,php递归json 本文实例讲述了php递归json类的实现方法。分享给大家供大家参考。 具体实现代码如下: 复制代码 代码如下...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这里举一个fastjson使用递归向下算法解析JSON实例。假设有如下JSON字符串: ``` { "name": "Tom", "age": 18, "gender": "male", "address": { "province": "Guangdong", "city": "Shenzhen", "district": "Futian" } } ``` fastjson解析这个JSON字符串时,会使用递归向下算法进行解析。具体的解析过程如下: 1. 初始状态:读取到 '{',进入parseObject方法。 2. parseObject方法:创建JSONObject对象,读取到 "name",调用parseKey方法。 3. parseKey方法:读取到 ':',调用parseValue方法。 4. parseValue方法:读取到 "Tom",将其作为值赋给"name"键。 5. parseObject方法:读取到 ',',继续调用parseKey方法。 6. parseKey方法:读取到 ':',调用parseValue方法。 7. parseValue方法:读取到 18,将其作为值赋给"age"键。 8. parseObject方法:读取到 ',',继续调用parseKey方法。 9. parseKey方法:读取到 ':',调用parseValue方法。 10. parseValue方法:读取到 "male",将其作为值赋给"gender"键。 11. parseObject方法:读取到 ',',继续调用parseKey方法。 12. parseKey方法:读取到 ':',调用parseValue方法。 13. parseValue方法:读取到 '{',进入parseObject方法。 14. parseObject方法:创建JSONObject对象,读取到 "province",调用parseKey方法。 15. parseKey方法:读取到 ':',调用parseValue方法。 16. parseValue方法:读取到 "Guangdong",将其作为值赋给"province"键。 17. parseObject方法:读取到 ',',继续调用parseKey方法。 18. parseKey方法:读取到 ':',调用parseValue方法。 19. parseValue方法:读取到 "Shenzhen",将其作为值赋给"city"键。 20. parseObject方法:读取到 ',',继续调用parseKey方法。 21. parseKey方法:读取到 ':',调用parseValue方法。 22. parseValue方法:读取到 "Futian",将其作为值赋给"district"键。 23. parseObject方法:读取到 '}',将JSONObject对象作为值赋给"address"键。 24. parseObject方法:读取到 '}',JSON解析完成。 以上就是fastjson使用递归向下算法解析JSON的一个实例

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值