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生成随机用户名和密码的实现代码
Feb 27 PHP
PHP设计模式之命令模式的深入解析
Jun 13 PHP
php无限遍历目录示例
Feb 21 PHP
PHP文件上传之多文件上传的实现思路
Jan 27 PHP
PHP使用curl模拟post上传及接收文件的方法
Mar 04 PHP
php强制下载文件函数
Aug 24 PHP
中高级PHP程序员应该掌握哪些技术?
Sep 23 PHP
PHP7匿名类用法分析
Sep 26 PHP
thinkPHP js文件中U方法不被解析问题的解决方法
Dec 05 PHP
thinkPHP5.0框架模块设计详解
Mar 18 PHP
php实现将二维关联数组转换成字符串的方法详解
Jul 31 PHP
实例化php类时传参的方法分析
Jun 05 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_Flame(Version:Progress)的原代码
2006/10/09 PHP
层叠菜单的动态生成
2006/10/09 PHP
ADODB的数据库封包程序库
2006/12/31 PHP
MySQL相关说明
2007/01/15 PHP
PHP判断远程url是否有效的几种方法小结
2011/10/08 PHP
PHP+MySQL插入操作实例
2015/01/21 PHP
php生成随机数/生成随机字符串的方法小结【5种方法】
2020/05/27 PHP
Json字符串转换为JS对象的高效方法实例
2013/05/01 Javascript
js之onload事件的一点使用心得
2013/08/14 Javascript
深入理解事件冒泡(Bubble)和事件捕捉(capture)
2016/05/28 Javascript
jQuery UI制作选项卡(tabs)
2016/12/13 Javascript
js+canvas实现动态吃豆人效果
2017/03/22 Javascript
微信小程序页面间传值与页面取值操作实例分析
2019/04/30 Javascript
el-input 标签中密码的显示和隐藏功能的实例代码
2019/07/19 Javascript
关于vue组件事件属性穿透详解
2019/10/28 Javascript
Python操作列表的常用方法分享
2014/02/13 Python
Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程
2014/11/18 Python
Python中.py文件打包成exe可执行文件详解
2017/03/22 Python
Linux下Python安装完成后使用pip命令的详细教程
2018/11/22 Python
python实现ip代理池功能示例
2019/07/05 Python
python爬虫 猫眼电影和电影天堂数据csv和mysql存储过程解析
2019/09/05 Python
基于python实现雪花算法过程详解
2019/11/16 Python
tensorflow没有output结点,存储成pb文件的例子
2020/01/04 Python
django ObjectDoesNotExist 和 DoesNotExist的用法
2020/07/09 Python
美国手机支架公司:PopSockets
2019/11/27 全球购物
Spartoo美国:欧洲排名第一的在线时装零售商
2019/12/12 全球购物
初中女生自我鉴定
2013/12/19 职场文书
如何写好建议书
2014/03/13 职场文书
国际贸易专业求职信
2014/06/04 职场文书
元旦标语大全
2014/10/09 职场文书
践行三严三实心得体会
2014/10/13 职场文书
机关职员工作检讨书
2014/10/23 职场文书
2015年三八妇女节活动总结
2015/02/06 职场文书
无违反计划生育证明格式
2015/06/24 职场文书
创业计划书之废品回收
2019/09/26 职场文书
Win11 25163.1010更新补丁KB5016904推送,测试服务验证管道(附更新修复汇总)
2022/07/23 数码科技