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学习笔记(毕业设计)
Feb 21 PHP
简单的方法让你的后台登录更加安全(php中加session验证)
Aug 22 PHP
PHP中使用数组指针函数操作数组示例
Nov 19 PHP
PHP图片处理之使用imagecopyresampled函数实现图片缩放例子
Nov 19 PHP
php基础教程
Aug 26 PHP
PHP简单留言本功能实现代码
Jun 09 PHP
PHP验证码无法显示的原因及解决办法
Aug 11 PHP
Laravel5.5新特性之友好报错以及展示详解
Aug 13 PHP
php静态成员方法和静态的成员属性的使用方法
Oct 26 PHP
thinkphp5.0自定义验证规则使用方法
Nov 16 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
Mar 22 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中serialize序列化与json性能测试的示例分析
2013/04/27 PHP
关于更改Zend Studio/Eclipse代码风格主题的介绍
2013/06/23 PHP
PHP缓存工具XCache安装与使用方法详解
2018/04/09 PHP
PHP生成腾讯云COS接口需要的请求签名
2018/05/20 PHP
PHP的微信支付接口使用方法讲解
2019/03/08 PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
2019/04/15 PHP
在textarea文本域中显示HTML代码的方法
2007/03/06 Javascript
使用onbeforeunload属性后的副作用
2007/03/08 Javascript
jQuery之end()和pushStack()使用介绍
2012/02/07 Javascript
火狐下input焦点无法重复获取问题的解决方法
2014/06/16 Javascript
jQuery的观察者模式详解
2014/12/22 Javascript
javascript实现复选框超过限制即弹出警告框的方法
2015/02/25 Javascript
JavaScript数组各种常见用法实例分析
2015/08/04 Javascript
Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法
2016/06/23 Javascript
利用原生JS自动生成文章标题树的实例
2016/08/22 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
2016/10/28 Javascript
使用JavaScript实现alert的实例代码
2017/07/06 Javascript
微信小程序 转发功能的实现
2017/08/04 Javascript
JS实现HTML页面中动态显示当前时间完整示例
2018/07/30 Javascript
BootStrap模态框闪退问题实例代码详解
2018/12/10 Javascript
JavaScript设计模式之代理模式实例分析
2019/01/16 Javascript
浅析Python中将单词首字母大写的capitalize()方法
2015/05/18 Python
Python中不同进制的语法及转换方法分析
2016/07/27 Python
Python实现压缩和解压缩ZIP文件的方法分析
2017/09/28 Python
python 返回列表中某个值的索引方法
2018/11/07 Python
在Python中居然可以定义两个同名通参数的函数
2019/01/31 Python
对Python3 解析html的几种操作方式小结
2019/02/16 Python
Python实现简单的列表冒泡排序和反转列表操作示例
2019/07/10 Python
Django--权限Permissions的例子
2019/08/28 Python
python 进程间数据共享multiProcess.Manger实现解析
2019/09/23 Python
python 实现矩阵填充0的例子
2019/11/29 Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
2020/01/09 Python
美国在线家居装饰店:Belle&June
2018/10/24 全球购物
法律专业推荐信范文
2013/11/29 职场文书
高中家长寄语
2014/04/02 职场文书
pandas数值排序的实现实例
2021/07/25 Python