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

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

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

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

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

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

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

Tags: json转换数组

分享到: