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核心代码分析require和include的区别
Jan 02 PHP
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
Mar 27 PHP
处理(php-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
Jul 03 PHP
PHP获取php,mysql,apche的版本信息示例代码
Jan 16 PHP
php中curl和file_get_content的区别
May 10 PHP
php查询mysql数据库并将结果保存到数组的方法
Mar 18 PHP
PHP与服务器文件系统的简单交互
Oct 21 PHP
CI框架AR数据库操作常用函数总结
Nov 21 PHP
php正则修正符用法实例详解
Dec 29 PHP
PHP _construct()函数讲解
Feb 03 PHP
Swoole源码中如何查询Websocket的连接问题详解
Aug 30 PHP
php远程请求CURL实例教程(爬虫、保存登录状态)
Dec 10 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.ini以达到屏蔽错误信息并记录日志
2013/06/16 PHP
php实现处理输入转义字符的代码
2015/11/08 PHP
PHP转换文本框内容为HTML格式的方法
2016/07/20 PHP
PHP实现浏览器中直接输出图片的方法示例
2018/03/14 PHP
jquery查找父元素、子元素(个人经验总结)
2014/04/09 Javascript
Javascript学习指南
2014/12/01 Javascript
javascript比较两个日期的先后示例代码
2014/12/31 Javascript
jQuery实现DIV层淡入淡出拖动特效的方法
2015/02/13 Javascript
Jquery插件easyUi实现表单验证示例
2015/12/15 Javascript
javascript中获取class的简单实现
2016/07/12 Javascript
JS对HTML表格进行增删改操作
2016/08/22 Javascript
jQuery删除当前节点元素
2016/12/07 Javascript
AngularJS使用angular.bootstrap完成模块手动加载的方法分析
2017/01/19 Javascript
javascript数据类型详解
2017/02/07 Javascript
jQuery上传多张图片带进度条样式(DEMO)
2017/03/02 Javascript
Vue中计算属性computed的示例解读
2017/07/26 Javascript
vue.js如何将echarts封装为组件一键使用详解
2017/10/10 Javascript
vue-router重定向不刷新问题的解决
2018/06/25 Javascript
谈谈JavaScript中的垃圾回收机制
2020/09/17 Javascript
[47:48]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第三局
2016/02/28 DOTA
python之virtualenv的简单使用方法(必看篇)
2017/11/25 Python
Python matplotlib 画图窗口显示到gui或者控制台的实例
2018/05/24 Python
使用Django简单编写一个XSS平台的方法步骤
2019/03/25 Python
Python正则表达式高级使用方法汇总
2020/06/18 Python
谈谈python垃圾回收机制
2020/09/27 Python
日本酒店、民宿、温泉旅馆、当地旅行团中文预订:e路东瀛
2019/12/09 全球购物
易程科技软件测试笔试
2013/03/24 面试题
法学专业个人求职信
2013/09/26 职场文书
客户代表实习人员自我鉴定
2013/09/27 职场文书
求职信标题怎么写
2014/05/26 职场文书
法制演讲稿
2014/09/10 职场文书
2015年物业管理工作总结
2015/04/23 职场文书
大学生如何逃脱“毕业季创业队即散伙”魔咒?
2019/08/19 职场文书
Django使用channels + websocket打造在线聊天室
2021/05/20 Python
SQL实现LeetCode(180.连续的数字)
2021/08/04 MySQL
spring cloud 配置中心native配置方式
2021/09/25 Java/Android