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 相关文章推荐
一个简单的自动发送邮件系统(三)
Oct 09 PHP
PHP新手上路(十四)
Oct 09 PHP
MYSQL数据库初学者使用指南
Nov 16 PHP
php中导出数据到excel时数字变为科学计数的解决方法
Feb 03 PHP
php判断正常访问和外部访问的示例
Feb 10 PHP
PHP中使用imagick生成PSD文件缩略图教程
Jan 26 PHP
php实现Mongodb自定义方式生成自增ID的方法
Mar 23 PHP
在Windows系统下使用PHP生成Word文档的教程
Jul 03 PHP
PHP写的简单数字验证码实例
May 23 PHP
php+mysql开发的最简单在线题库(在线做题系统)完整案例
Mar 30 PHP
php数值计算num类简单操作示例
May 15 PHP
PHP命令行与定时任务
Apr 01 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的session过期设置
2013/06/29 PHP
PHP大转盘中奖概率算法实例
2014/10/21 PHP
PHP实现事件机制的方法
2015/07/10 PHP
Laravel框架中集成MongoDB和使用详解
2019/10/17 PHP
PHP Pipeline 实现中间件的示例代码
2020/04/26 PHP
javascript 从if else 到 switch case 再到抽象
2010/07/17 Javascript
关于js new Date() 出现NaN 的分析
2012/10/23 Javascript
jquery修改属性值实例代码(设置属性值)
2014/01/06 Javascript
JS对象转换为Jquery对象示例
2014/01/26 Javascript
jQuery复制表单元素附源码分享效果演示
2015/09/30 Javascript
浅谈jQuery 选择器和dom操作
2016/06/07 Javascript
JavaScript中apply方法的应用技巧小结
2016/09/29 Javascript
js实现二级导航功能
2017/03/03 Javascript
轻松实现jQuery添加删除按钮Click事件
2017/03/13 Javascript
vue+element-ui实现表格编辑的三种实现方式
2018/10/31 Javascript
javascript实现导航栏分页效果
2019/06/27 Javascript
js防抖函数和节流函数使用场景和实现区别示例分析
2020/04/11 Javascript
js编写简易的计算器
2020/07/29 Javascript
[48:27]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
Python列表(list)、字典(dict)、字符串(string)基本操作小结
2014/11/28 Python
python在windows和linux下获得本机本地ip地址方法小结
2015/03/20 Python
浅谈Python用QQ邮箱发送邮件时授权码的问题
2018/01/29 Python
matplotlib给子图添加图例的方法
2018/08/03 Python
在Python中使用gRPC的方法示例
2018/08/08 Python
selenium+python自动化测试之页面元素定位
2019/01/23 Python
django表单的Widgets使用详解
2019/07/22 Python
python 实现turtle画图并导出图片格式的文件
2019/12/07 Python
Django实现前台上传并显示图片功能
2020/05/29 Python
python实现excel公式格式化的示例代码
2020/12/23 Python
联想加拿大官方网站:Lenovo Canada
2018/04/05 全球购物
通信工程专业求职信
2014/06/04 职场文书
2015年社区综治宣传月活动总结
2015/03/25 职场文书
安全教育第一课观后感
2015/06/17 职场文书
为什么RedisCluster设计成16384个槽
2021/09/25 Redis
联想win10摄像头打不开怎么办?win10笔记本摄像头打不开解决办法
2022/04/08 数码科技
Python 绘制多因子柱状图
2022/05/11 Python