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概述.
Oct 09 PHP
PHP 高级课程笔记 面向对象
Jun 21 PHP
深入理解PHP原理之错误抑制与内嵌HTML分析
May 02 PHP
PHP 类相关函数的使用详解
May 10 PHP
PHP页面中文乱码分析
Oct 29 PHP
Discuz!X中SESSION机制实例详解
Sep 23 PHP
双冒号 ::在PHP中的使用情况
Nov 05 PHP
学习php设计模式 php实现装饰器模式(decorator)
Dec 07 PHP
Windows下php+mysql5.7配置教程
May 16 PHP
php双层循环(九九乘法表)
Oct 23 PHP
thinkphp框架类库扩展操作示例
Nov 26 PHP
PHP7 整型处理机制修改
Mar 09 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调用Webservice实例代码
2011/07/29 PHP
table标签的结构与合并单元格的实现方法
2013/07/24 PHP
php类声明和php类使用方法示例分享
2014/03/29 PHP
Yii2中如何使用modal弹窗(基本使用)
2016/05/30 PHP
js解析与序列化json数据(三)json的解析探讨
2013/02/01 Javascript
javascript简单实现表格行间隔显示颜色并高亮显示
2013/11/29 Javascript
常见的原始JS选择器使用方法总结
2014/04/09 Javascript
jQuery通过deferred对象管理ajax异步
2016/05/20 Javascript
JS中的数组方法笔记整理
2016/07/26 Javascript
简单实现IONIC购物车功能
2017/01/10 Javascript
JS表单提交验证、input(type=number) 去三角 刷新验证码
2017/06/21 Javascript
微信小程序之前台循环数据绑定
2017/08/18 Javascript
vue滚动轴插件better-scroll使用详解
2017/10/17 Javascript
js中innerText/textContent和innerHTML与target和currentTarget的区别
2019/01/21 Javascript
详解vue中移动端自适应方案
2019/05/05 Javascript
利用Vue-draggable组件实现Vue项目中表格内容的拖拽排序
2019/06/07 Javascript
Vue实例的对象参数options的几个常用选项详解
2019/11/08 Javascript
vue 解决addRoutes多次添加路由重复的操作
2020/08/04 Javascript
JS跨浏览器解析XML应用过程详解
2020/10/16 Javascript
Python continue语句用法实例
2014/03/11 Python
Python中super关键字用法实例分析
2015/05/28 Python
Python实现网站注册验证码生成类
2017/06/08 Python
Python的地形三维可视化Matplotlib和gdal使用实例
2017/12/09 Python
Python实现多条件筛选目标数据功能【测试可用】
2018/06/13 Python
python使用Turtle库绘制动态钟表
2018/11/19 Python
Python装饰器简单用法实例小结
2018/12/03 Python
Python基础学习之时间转换函数用法详解
2019/06/18 Python
python 判断linux进程,并杀死进程的实现方法
2019/07/01 Python
MxNet预训练模型到Pytorch模型的转换方式
2020/05/25 Python
Europcar意大利:汽车租赁
2019/07/07 全球购物
关于长城的导游词
2015/01/30 职场文书
员工给公司的建议书
2019/06/24 职场文书
MySql新手入门的基本操作汇总
2021/05/13 MySQL
压缩Redis里的字符串大对象操作
2021/06/23 Redis
Java 垃圾回收超详细讲解记忆集和卡表
2022/04/08 Java/Android
ubuntu开机后ROS程序自启动问题
2022/12/24 Servers