当前位置:首页 > PHP教程 > php应用 > 列表

php json转换成数组形式代码分享

发布:smiling 来源: PHP粉丝网  添加日期:2021-04-25 11:30:48 浏览: 评论:0 

这篇文章主要介绍了php json转换成数组形式代码分享,需要的朋友可以参考下

写的json转换成数组的一个类和方法,实际上写的方法可以把大部分包含json字符串的数据结构转换成数组,上代码:

  1. class antiTranJson 
  2. { 
  3.   protected  static function jsonToArray($json) 
  4.   { 
  5.     if(!is_string($json) || is_null(json_decode($json, true))) 
  6.       throw new NotJsonStringException('param is not a json string'); 
  7.     $deJson = json_decode($json, true); 
  8.     return self::toArray($deJson); 
  9.   } 
  10.   protected  static function stdClassToArray($stds) 
  11.   { 
  12.     if(is_object($stds)) 
  13.       throw new NotObjectException('params not object'); 
  14.     $params = get_object_vars($stds); 
  15.     return self::toArray($params); 
  16.   } 
  17.  
  18.   protected  static function arrayRToArray($params) 
  19.   { 
  20.     $tmp = array(); 
  21.     if(!is_array($params)) 
  22.       throw new NotArrayException('params not array'); 
  23.     foreach($params as $k=>$v) 
  24.     { 
  25.       $tmp[$k] = self::toArray($v); 
  26.     } 
  27.     //var_dump($tmp); 
  28.     return $tmp; 
  29.   } 
  30.  
  31.   //调用这个方法,包含json的数据均可以被转换 
  32.   public static function toArray($params) 
  33.   { 
  34.     $tmp = array(); 
  35.     if(is_string($params) && !is_null(json_decode($params))) 
  36.       $tmp = self::jsonToArray($params); 
  37.     elseif(is_array($params)) 
  38.       $tmp = self::arrayRToArray($params); 
  39.     //这里注意一下,假如$params 是一个对象,只有包含的属性是可读取(public或者临时的对象属性)的时候才能实现转换 
  40.     elseif(is_object($params)) 
  41.       $tmp = self::stdClassToArray($params); 
  42.     else 
  43.       $tmp = $params; //www.phpfensi.com 
  44.     return $tmp; 
  45.   } 

以上就是相关代码,至少目前用的时候还是可以得,如果各位有好的建议,希望大家讨论讨论,共同进步,谢谢。

Tags: json转换数组

分享到: