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 相关文章推荐
关于Intype一些小问题的解决办法
Mar 28 PHP
用PHP的ob_start() 控制您的浏览器cache
Aug 03 PHP
php短域名转换为实际域名函数
Jan 17 PHP
php 归并排序 数组交集
May 10 PHP
PHP file_exists问题杂谈
May 07 PHP
执行、获取远程代码返回:file_get_contents 超时处理的问题详解
Jun 25 PHP
win7计划任务定时执行PHP脚本设置图解
May 09 PHP
PHP中使用imagick实现把PDF转成图片
Jan 26 PHP
Yii2基于Ajax自动获取表单数据的方法
Aug 10 PHP
php将文件夹打包成zip文件的简单实现方法
Oct 04 PHP
Redis构建分布式锁
Mar 28 PHP
PHP $O00OO0=urldecode & eval 解密,记一次商业源码的去后门
Sep 13 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中在PDO中使用事务(Transaction)
2011/05/14 PHP
php中判断字符串是否全是中文或含有中文的实现代码
2011/09/16 PHP
ThinkPHP3.1新特性之多数据库操作更加完善
2014/06/19 PHP
php中base_convert()进制数字转换函数实例
2014/11/20 PHP
CentOS6.5 编译安装lnmp环境
2014/12/21 PHP
WordPress中用于获取搜索表单的PHP函数使用解析
2016/01/05 PHP
Zend Framework教程之路由功能Zend_Controller_Router详解
2016/03/07 PHP
Yii框架引用插件和ckeditor中body与P标签去除的方法
2017/01/19 PHP
网上抓的一个特效
2007/05/11 Javascript
Ext第一周 史上最强学习笔记---GridPanel(基础篇)
2008/12/29 Javascript
Javascript事件热键兼容ie|firefox
2010/12/30 Javascript
23个Javascript弹出窗口特效整理
2011/02/25 Javascript
js改变img标签的src属性在IE下没反应的解决方法
2013/07/23 Javascript
基于javascript数组实现图片轮播
2016/05/02 Javascript
Bootstrap安装环境配置教程分享
2016/05/27 Javascript
js获取对象、数组的实际长度,元素实际个数的实现代码
2016/06/08 Javascript
Bootstrap-table自定义可编辑每页显示记录数
2018/09/07 Javascript
JavaScript中this用法学习笔记
2019/03/17 Javascript
使用VueRouter的addRoutes方法实现动态添加用户的权限路由
2019/06/03 Javascript
jquery实现简易验证插件封装
2020/09/13 jQuery
[46:47]2014 DOTA2国际邀请赛中国区预选赛5.21 LGD-CDEC VS NE
2014/05/22 DOTA
Python中字符串格式化str.format的详细介绍
2017/02/17 Python
Python实现图片转字符画的示例
2017/08/22 Python
python全局变量引用与修改过程解析
2020/01/07 Python
pycharm 2018 激活码及破解补丁激活方式
2020/09/21 Python
html5启动原生APP总结
2020/07/03 HTML / CSS
中国跨境电商:Tomtop
2017/03/16 全球购物
长曲棍球装备:Lacrosse Monkey
2020/12/02 全球购物
某科技软件测试面试题
2013/05/19 面试题
红领巾心向党广播稿
2014/01/19 职场文书
学校党员干部承诺书
2015/05/04 职场文书
2015年“公民道德宣传日”活动方案
2015/05/06 职场文书
大学生敬老院活动总结
2015/05/07 职场文书
小学新课改心得体会
2016/01/22 职场文书
Java并发编程必备之Future机制
2021/06/30 Java/Android
MySQL 自动填充 create_time 和 update_time
2022/05/20 MySQL