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 相关文章推荐
PDO版本问题 Invalid parameter number: no parameters were bound
Jan 06 PHP
使用PHP求两个文件的相对路径
Jun 20 PHP
浅析SVN常见问题及解决方法
Jun 21 PHP
解析VS2010利用VS.PHP插件调试PHP的方法
Jul 19 PHP
使用php计算排列组合的方法
Nov 13 PHP
ThinkPHP提交表单时默认自动转义的解决方法
Nov 25 PHP
PHP判断一个字符串是否是回文字符串的方法
Mar 23 PHP
php无限分类使用concat如何实现
Nov 05 PHP
php反射类ReflectionClass用法分析
May 12 PHP
ecshop添加菜单及权限分配问题
Nov 21 PHP
php中输出json对象的值(实现方法)
Mar 07 PHP
php实现文章评论系统
Feb 18 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
GD输出汉字的函数的分析
2006/10/09 PHP
php下实现一个阿拉伯数字转中文数字的函数
2008/07/10 PHP
PHP获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
2012/10/03 PHP
php empty()与isset()区别的详细介绍
2013/06/17 PHP
PHP中把数据库查询结果输出为json格式简单实例
2015/04/09 PHP
学习php设计模式 php实现备忘录模式(Memento)
2015/12/09 PHP
PHP两个n位的二进制整数相加问题的解决
2018/08/26 PHP
PHP实现提高SESSION响应速度的几种方法详解
2019/08/09 PHP
laravel 配置路由 api和web定义的路由的区别详解
2019/09/03 PHP
jquery 页眉单行信息滚动显示实现思路及代码
2014/06/26 Javascript
fixedBox固定div漂浮代码支持ie6以上大部分主流浏览器
2014/06/26 Javascript
使用JQ来编写最基本的淡入淡出效果附演示动画
2014/10/31 Javascript
jQuery实现tab标签自动切换的方法
2015/02/28 Javascript
JS获取Table中td值的方法
2015/03/19 Javascript
拥有一个属于自己的javascript表单验证插件
2016/03/24 Javascript
js自定义瀑布流布局插件
2017/05/16 Javascript
详解使用Node.js 将txt文件转为Excel文件
2017/07/05 Javascript
基于Vue制作组织架构树组件
2017/12/06 Javascript
JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】
2019/07/10 jQuery
JavaScript实现打砖块游戏
2020/02/25 Javascript
基于element-ui封装表单金额输入框的方法示例
2021/01/06 Javascript
[01:11:02]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python类和继承用法实例
2015/07/07 Python
关于Python面向对象编程的知识点总结
2017/02/14 Python
对python中list的拷贝与numpy的array的拷贝详解
2019/01/29 Python
解决Django中checkbox复选框的传值问题
2020/03/31 Python
通俗易懂了解Python装饰器原理
2020/09/17 Python
python实现图片转字符画的完整代码
2021/02/21 Python
H5仿微信界面教程(一)
2017/07/05 HTML / CSS
欧舒丹美国官网:L’Occitane美国
2018/02/23 全球购物
大学生农村教师实习自我鉴定
2013/09/21 职场文书
大二自我鉴定范文
2013/10/05 职场文书
高三体育教学反思
2014/01/29 职场文书
服务型党组织建设典型材料
2014/05/07 职场文书
2016大学先进团支部事迹材料
2016/03/01 职场文书
世界文化遗产导游词
2019/08/07 职场文书