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 03 PHP
浏览器预览PHP文件时顶部出现空白影响布局分析原因及解决办法
Jan 11 PHP
解决File size limit exceeded 错误的方法
Jun 14 PHP
php命令行用法入门实例教程
Oct 27 PHP
微信公众号点击菜单即可打开并登录微站的实现方法
Nov 14 PHP
php实现读取手机客户端浏览器的类
Jan 09 PHP
php通过正则表达式记取数据来读取xml的方法
Mar 09 PHP
php定义一个参数带有默认值的函数实例分析
Mar 16 PHP
thinkphp中的url跳转用法分析
Jul 12 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
Sep 21 PHP
让Laravel API永远返回JSON格式响应的方法示例
Sep 05 PHP
PHP时间类完整代码实例
Feb 26 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 和 COM
2006/10/09 PHP
图解找出PHP配置文件php.ini的路径的方法
2014/08/20 PHP
php实现通过ftp上传文件
2015/06/19 PHP
PHP技术开发微信公众平台
2015/07/22 PHP
PHP设计模式之工厂模式与单例模式
2016/09/28 PHP
thinkphp jquery实现图片上传和预览效果
2020/07/22 PHP
jQuery判断元素是否是隐藏的代码
2011/04/24 Javascript
jquery之超简单的div显示和隐藏特效demo(分享)
2013/07/09 Javascript
jQuery快速上手:写jQuery与直接写JS的区别详细解析
2013/08/26 Javascript
Jquery获取元素的父容器对象示例代码
2014/02/10 Javascript
自制的文件上传JS控件可支持IE、chrome、firefox etc
2014/04/18 Javascript
javascript trim函数在IE下不能用的解决方法
2014/09/12 Javascript
基于jQuery实现最基本的淡入淡出效果实例
2015/02/02 Javascript
Redis基本知识、安装、部署、配置笔记
2015/03/05 Javascript
JS实现点击按钮后框架内载入不同网页的方法
2015/05/05 Javascript
JavaScript小技巧整理篇(非常全)
2016/01/26 Javascript
很不错的两款Bootstrap Icon图标选择组件
2016/01/28 Javascript
javascript闭包功能与用法实例分析
2017/04/06 Javascript
微信小程序实战之自定义抽屉菜单(7)
2017/04/18 Javascript
JS原生带小白点轮播图实例讲解
2017/07/22 Javascript
浅谈Vuejs Prop基本用法
2017/08/17 Javascript
vue监听input标签的value值方法
2018/08/27 Javascript
小程序实现人脸识别功能(百度ai)
2018/12/23 Javascript
javascript利用canvas实现鼠标拖拽功能
2020/07/23 Javascript
python解析xml文件实例分享
2013/12/04 Python
跟老齐学Python之总结参数的传递
2014/10/10 Python
Python从list类型、range()序列简单认识类(class)【可迭代】
2019/05/31 Python
python修改字典键(key)的方法
2019/08/05 Python
python带参数打包exe及调用方式
2019/12/21 Python
python matplotlib.pyplot.plot()参数用法
2020/04/14 Python
Python实现JS解密并爬取某音漫客网站
2020/10/23 Python
Python常用扩展插件使用教程解析
2020/11/02 Python
HTML5的标签的代码的简单介绍 HTML5标签的简介
2012/05/28 HTML / CSS
群众路线领导对照材料
2014/08/23 职场文书
劳动保障个人工作总结
2015/03/04 职场文书
请求模块urllib之PYTHON爬虫的基本使用
2022/04/08 Python