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


Posted in PHP onNovember 10, 2014

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

class antiTranJson

{

  protected  static function jsonToArray($json)

  {

    if(!is_string($json) || is_null(json_decode($json, true)))

      throw new NotJsonStringException('param is not a json string');

    $deJson = json_decode($json, true);

    return self::toArray($deJson);

  }
  protected  static function stdClassToArray($stds)

  {

    if(is_object($stds))

      throw new NotObjectException('params not object');

    $params = get_object_vars($stds);

    return self::toArray($params);

  }
  protected  static function arrayRToArray($params)

  {

    $tmp = array();

    if(!is_array($params))

      throw new NotArrayException('params not array');

    foreach($params as $k=>$v)

    {

      $tmp[$k] = self::toArray($v);

    }

    //var_dump($tmp);

    return $tmp;

  }
  //调用这个方法,包含json的数据均可以被转换

  public static function toArray($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;

  }

以上就是相关代码,至少目前用的时候还是可以得,如果各位有好的建议,希望大家讨论讨论,共同进步,谢谢
PHP 相关文章推荐
收集的二十一个实用便利的PHP函数代码
Apr 22 PHP
PHP数据集构建JSON格式及新数组的方法
Nov 07 PHP
phpQuery占用内存过多的处理方法
Nov 13 PHP
php生成短网址示例
May 05 PHP
CI(CodeIgniter)框架中的增删改查操作
Jun 10 PHP
Session 失效的原因汇总及解决丢失办法
Sep 30 PHP
图文详解PHP环境搭建教程
Jul 16 PHP
浅谈php中的访问修饰符private、protected、public的作用范围
Nov 20 PHP
详解PHP中的序列化、反序列化操作
Mar 21 PHP
PHP不使用内置函数实现字符串转整型的方法示例
Jul 03 PHP
laravel5.1框架基础之Blade模板继承简单使用方法分析
Sep 05 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
Nov 25 PHP
PHP冒泡算法详解(递归实现)
Nov 10 #PHP
PHP字符串word末字符实现大小写互换的方法
Nov 10 #PHP
PHP 快速排序算法详解
Nov 10 #PHP
PHP基于CURL进行POST数据上传实例
Nov 10 #PHP
ci检测是ajax还是页面post提交数据的方法
Nov 10 #PHP
php采用ajax数据提交post与post常见方法总结
Nov 10 #PHP
php学习笔记之面向对象
Nov 08 #PHP
You might like
php中禁止单个IP与ip段访问的代码小结
2012/07/04 PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
2014/06/13 PHP
thinkphp中的url跳转用法分析
2016/07/12 PHP
tp5.1框架数据库子查询操作实例分析
2020/05/26 PHP
jquery获取ASP.NET服务器端控件dropdownlist和radiobuttonlist生成客户端HTML标签后的value和text值
2010/06/28 Javascript
理清apply(),call()的区别和关系
2011/08/14 Javascript
javascript中传统事件与现代事件
2015/06/23 Javascript
AnjularJS中$scope和$rootScope的区别小结
2016/09/18 Javascript
针对后台列表table拖拽比较实用的jquery拖动排序
2016/10/10 Javascript
JavaScript数组复制详解
2017/02/02 Javascript
ionic2屏幕适配实现适配手机、平板等设备的示例代码
2017/08/11 Javascript
Vant的安装和配合引入Vue.js项目里的方法步骤
2018/12/05 Javascript
JSON基本语法及与JavaScript的异同实例分析
2019/01/04 Javascript
小程序Request的另类用法详解
2019/08/09 Javascript
详解Vue串联过滤器的使用场景
2020/04/30 Javascript
JavaScript函数重载操作实例浅析
2020/05/02 Javascript
[02:15]2014DOTA2国际邀请赛 赛后退役选手回顾
2014/08/01 DOTA
Python比较两个图片相似度的方法
2015/03/13 Python
在IIS服务器上以CGI方式运行Python脚本的教程
2015/04/25 Python
Python中文竖排显示的方法
2015/07/28 Python
利用 Monkey 命令操作屏幕快速滑动
2016/12/07 Python
selenium + python 获取table数据的示例讲解
2018/10/13 Python
Python笔记之工厂模式
2019/11/20 Python
Python数据存储之 h5py详解
2019/12/26 Python
Python环境配置实现pip加速过程解析
2020/11/27 Python
matplotlib源码解析标题实现(窗口标题,标题,子图标题不同之间的差异)
2021/02/22 Python
python实现MySQL指定表增量同步数据到clickhouse的脚本
2021/02/26 Python
CSS3中:nth-child和:nth-of-type的区别深入理解
2014/03/10 HTML / CSS
State Cashmere官网:半零售价可持续蒙古羊绒
2020/02/26 全球购物
离婚协议书的书写要求
2014/09/17 职场文书
家庭聚会祝酒词
2015/08/11 职场文书
小学一年级班主任工作经验交流材料
2015/11/02 职场文书
银行柜员优质服务心得体会
2016/01/22 职场文书
Html5新增了哪些功能
2021/04/16 HTML / CSS
Python-typing: 类型标注与支持 Any类型详解
2021/05/10 Python
Python 统计序列中元素的出现频度
2022/04/26 Python