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 相关文章推荐
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
Nov 18 PHP
PHP实现Socket服务器的代码
Apr 03 PHP
php str_pad() 将字符串填充成指定长度的字符串
Feb 23 PHP
PHP源码之explode使用说明
Aug 05 PHP
用php实现选择排序的解决方法
May 04 PHP
对淘宝URL中ID提取的PHP代码
Sep 01 PHP
PHP实现单例模式最安全的做法
Jun 13 PHP
smarty中常用方法实例总结
Aug 07 PHP
PHP网页安全认证的实例详解
Sep 28 PHP
thinkPHP5框架auth权限控制类与用法示例
Jun 12 PHP
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
May 31 PHP
php web环境和命令行环境下查找php.ini的位置
Jul 17 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 disk_free_space 返回目录可用空间
2010/05/10 PHP
header跳转和include包含问题详解
2012/09/08 PHP
php 字符串压缩方法比较示例
2014/01/23 PHP
PHP的伪随机数与真随机数详解
2015/05/27 PHP
php打包网站并在线压缩为zip
2016/02/13 PHP
php进程间通讯实例分析
2016/07/11 PHP
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
2016/07/21 PHP
ThinkPHP简单使用memcache缓存的方法
2016/11/15 PHP
Mootools 1.2教程 输入过滤第一部分(数字)
2009/09/15 Javascript
JS保留小数点(四舍五入、四舍六入)实现思路及实例
2013/04/25 Javascript
node.js适合游戏后台开发吗?
2014/09/03 Javascript
js简单实现表单中点击按钮动态增加输入框数量的方法
2015/08/18 Javascript
学习JavaScript设计模式(继承)
2015/11/26 Javascript
js仿淘宝和百度文库的评分功能
2016/05/15 Javascript
简单实现js页面切换功能
2021/01/10 Javascript
原生的强大DOM选择器querySelector介绍
2016/12/21 Javascript
javascript操作cookie
2017/01/17 Javascript
JS实现直接运行html代码的方法
2017/03/13 Javascript
vue+mockjs模拟数据实现前后端分离开发的实例代码
2017/08/08 Javascript
vue学习之mintui picker选择器实现省市二级联动示例
2017/10/12 Javascript
详解weex默认webpack.config.js改造
2018/01/08 Javascript
Vant的安装和配合引入Vue.js项目里的方法步骤
2018/12/05 Javascript
[53:21]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-CDEC
2014/05/22 DOTA
Python生成验证码实例
2014/08/21 Python
详解Django通用视图中的函数包装
2015/07/21 Python
Python流程控制 while循环实现解析
2019/09/02 Python
django-crontab 定时执行任务方法的实现
2019/09/06 Python
python列表插入append(), extend(), insert()用法详解
2019/09/14 Python
Python爬虫库BeautifulSoup的介绍与简单使用实例
2020/01/25 Python
Python安装与卸载流程详细步骤(图解)
2020/02/20 Python
使用SQLAlchemy操作数据库表过程解析
2020/06/10 Python
python 实现波浪滤镜特效
2020/12/02 Python
python实现经纬度采样的示例代码
2020/12/10 Python
校企合作协议书
2014/04/16 职场文书
体育馆的标语
2014/06/24 职场文书
设计师求职信
2014/07/01 职场文书