php json转换成数组形式代码分享
写的json转换成数组的一个类和方法,实际上写的方法可以把大部分包含json字符串的数据结构转换成数组,上代码:
classantiTranJson
{
protected staticfunctionjsonToArray($json)
{
if(!is_string($json)||is_null(json_decode($json,true)))
thrownewNotJsonStringException('paramisnotajsonstring');
$deJson=json_decode($json,true);
returnself::toArray($deJson);
}
protected staticfunctionstdClassToArray($stds) { if(is_object($stds)) thrownewNotObjectException('paramsnotobject'); $params=get_object_vars($stds); returnself::toArray($params); }
protected staticfunctionarrayRToArray($params) { $tmp=array(); if(!is_array($params)) thrownewNotArrayException('paramsnotarray'); foreach($paramsas$k=>$v) { $tmp[$k]=self::toArray($v); } //var_dump($tmp); return$tmp; }
//调用这个方法,包含json的数据均可以被转换 publicstaticfunctiontoArray($params) { $tmp=array(); if(is_string($params)&&!is_null(json_decode($params))) $tmp=self::jsonToArray($params); elseif(is_array($params)) $tmp=self::arrayRToArray($params); //这里注意一下,假如$params是一个对象,只有包含的属性是可读取(public或者临时的对象属性)的时候才能实现转换 elseif(is_object($params)) $tmp=self::stdClassToArray($params); else $tmp=$params; return$tmp; }