问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

php如何解析这种JSON

发布网友 发布时间:2022-04-06 06:22

我来回答

4个回答

懂视网 时间:2022-04-06 10:44

二、json_decode() 对JSON数据进行解码,转换为PHP变量

  • 语法:json_decode($json[,$assoc=false[,$depth=512[,$options=0]]])
  • 注意:1、$json 为待解码的数据,必须为utf8编码的数据;
       2、$assoc 值为TRUE时返回数组,FALSE时返回对象;
       3、$depth 为递归深度;
       4、$option二进制掩码,目前只支持 JSON_BIGINT_AS_STRING;
       5、一般只用前面两个参数,如果要数据类型的数据要加一个参数true。
  • 示例:

    $book = array('a'=>'xiyouji','b'=>'sanguo','c'=>'shuihu','d'=>'hongloumeng');
     $json = json_encode($book);
     
     $array = json_decode($json,TRUE);
     $obj = json_decode($json);
     var_dump($array);
     var_dump($obj);

    浏览器打印出的结果如下:

    array(4) { ["a"]=> string(7) "xiyouji" ["b"]=> string(6) "sanguo" ["c"]=> string(6) "shuihu" ["d"]=> string(11) "hongloumeng" }
    object(stdClass)#2 (4) { ["a"]=> string(7) "xiyouji" ["b"]=> string(6) "sanguo" ["c"]=> string(6) "shuihu" ["d"]=> string(11) "hongloumeng" }

    两个结果看起来没多大区别,但调用里面的元素时,array和obj的方式是不同的。  

    $book = array('a'=>'xiyouji','b'=>'sanguo','c'=>'shuihu','d'=>'hongloumeng');
     $json = json_encode($book);
     
     $array = json_decode($json,TRUE);
     $obj = json_decode($json);
     var_dump($array['b']);//调用数组元素
     echo '<br/>';
     var_dump($obj->c);//调用对象元素

     打印结果如下:

    string(6) "sanguo" string(6) "shuihu"

    到此这篇关于浅析PHP中json_encode与json_decode的区别的文章就介绍到这了,更多相关PHP json_encode与json_decode内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    相关学习推荐:PHP编程从入门到精通

    热心网友 时间:2022-04-06 07:52

    目前,JSON已经成为最流行的数据交换格式之一,各大网站的API几乎都支持它。
    从5.2版本开始,PHP原生提供json_encode()和json_decode()函数,前者用于编码,后者用于解码。
    一、json_encode()
    该函数主要用来将数组和对象,转换为json格式。先看一个数组转换的例子:
      $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
      echo json_encode($arr);

    结果为
    {"a":1,"b":2,"c":3,"d":4,"e":5}

    由于json只接受utf-8编码的字符,所以json_encode()的参数必须是utf-8编码,否则会得到空字符或者null。当中文使用GB2312编码,或者外文使用ISO-8859-1编码的时候,这一点要特别注意。

    二、索引数组和关联数组
    PHP支持两种数组,一种是只保存"值"(value)的索引数组(indexed array),另一种是保存"名值对"(name/value)的关联数组(associative array)。
    由于javascript不支持关联数组,所以json_encode()只将索引数组(indexed array)转为数组格式,而将关联数组(associative array)转为对象格式。
    比如,现在有一个索引数组
      $arr = Array('one', 'two', 'three');
      echo json_encode($arr);

    结果为:

    ["one","two","three"]

    三、类(class)的转换
    下面是一个PHP的类:   class Foo {     const ERROR_CODE = '404';     public $public_ex = 'this is public';     private $private_ex = 'this is private!';     protected $protected_ex = 'this should be protected';     public function getErrorCode() {       return self::ERROR_CODE;     }   }
    现在,对这个类的实例进行json转换:

      $foo = new Foo;
      $foo_json = json_encode($foo);
      echo $foo_json;

    输出结果是
    {"public_ex":"this is public"}

    可以看到,除了公开变量(public),其他东西(常量、私有变量、方法等等)都遗失了。

    热心网友 时间:2022-04-06 09:10

    $jsonStr = '{"msg":{"auth":"Yes_auth","ddid":"1","payje":0.3,"payzt":"SUCCESS"}}';

    $arr = json_decode($jsonStr, true);

    $payzt = $arr['msg']['payzt'];

    // 或者

    $jsonStr = '{"msg":{"auth":"Yes_auth","ddid":"1","payje":0.3,"payzt":"SUCCESS"}}';

    $arr = json_decode($jsonStr);

    $payzt = $arr->msg->payzt;

     关键是对json_decode函数的使用。

    热心网友 时间:2022-04-06 10:44

    json_decode()把json转换为数组,你这个是二维数组。
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    怎样让电脑连上网? 汉办承认IPA对外汉语教师资格证吗?我是渤大对外汉语专业学生,现在大二... 打印标签贴纸格式怎么设置 出轨离婚怎么分财产 夫妻一方出轨离婚,财产如何分配? iphone日期怎么改 iphone怎么改时间日期 告诉中医粉一个事实 电脑w7启动黑屏了win7系统黑屏怎么办 电脑刷win7后开机无电源启动笔记本新装win7系统后开机黑屏 昂达win7电脑黑屏启动Windows7系统时出现黑屏现象的原因和解决方案 Php 从数据库拿到数组,准备写接口给app,是用json decode还是json encode 简述PHP和APACHE以及MYSQL共同的优点 apache+php+mysql问题 Linux、PHP、MySQL三者之间的关系 lamp架构中,请问apache,mysql,php之间是依靠哪几个文件,以及哪几个配置文件中的哪些语句连接起来的? Apache+PHP+MySQL是什么 jdk,mysql,apache ,三者之间的关系。还有个php,mysql,apache是不是他们性质一样,就是php,和jdk语言不同 html css js jquery ajax php mysql apache 之间的关系? PHP和apache和MySQL是怎样协同工作的?能举个例子吗? Apache PHP Mysql 各自的功能是什么?配合在一起各自如何分工?请用形象的比喻说明下 为什么Mysql与php总是联系在一起,它们之间是什么关系? html,php,mysql,css,javascript,apache服务器,他们之间是什么关系 php和Mysql之间有什么关系 apache和mysql是什么有什么用??和php又有什么关系???小白求问 apache,mysql,php,这三个是什么关系呢? PHP 主流框架 的选择~ 新手问个 php json的解析问题? PHP中json_encode返回的值无法被前端识别 php解析json问题 求助啊!php反编译的问题。。 php的序列化和返序列化跟json_encode有啥不同啊 php哪个版本开始支持json php判断是否是json 为什么php数组经json json_encode的解决方法 如何使用PHP语言来编码和解码JSON对象 json_encode json_decode 求代码 php json_decode(); 如何解析不是很标准的json 比如下面的 php打开URL的几种方法 php,如何把url字符串里面的参数解析出来 几种php访问url的方法 php中使用parse_url()对网址进行解析的实现代码(parse_url详解) php中URL怎么理解? 急!!php获取url参数 php解析url获取域名部分难点问题 php中处理URL地址问题 PHP 怎么解析远程URL 传过来json ,在前端显示出来 php从url获取网页内容 什么叫php的url路由技术,求解 php中如何解析rest风格url