1.json_decode()

json_decode
(PHP 5 >= 5.2.0, PECL json >= 1.2.0)

json_decode — 对 JSON 格式的字符串进行编码

说明
mixed json_decode ( string $json [, bool $assoc ] )
接受一个 JSON 格式的字符串并且把它转换为 PHP 变量

参数

json
待解码的 json string 格式的字符串。

assoc
当该参数为 TRUE 时,将返回 array 而非 object 。

返回值
Returns an object or if the optional assoc parameter is TRUE, an associative array is instead returned.

范例

Example #1 json_decode() 的例子

代码如下 复制代码
<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
var_dump(json_decode($json, true));
?>

上例将输出:

object(stdClass)#1 (5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}

array(5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}http://www.111cn.net/phper/php-cy/57800.htm

$data='[{"Name":"a1","Number":"123","Contno":"000","QQNo":""},{"Name":"a1","Number":"123","Contno":"000","QQNo":""},{"Name":"a1","Number":"123","Contno":"000","QQNo":""}]';
echo json_decode($data);

结果为:

Array ( [0] => stdClass Object ( [Name] => a1 [Number] => 123 [Contno] => 000 [QQNo] => ) [1] => stdClass Object ( [Name] => a1 [Number] => 123 [Contno] => 000 [QQNo] => ) [2] => stdClass Object ( [Name] => a1 [Number] => 123 [Contno] => 000 [QQNo] => ) )

可以看出经过json_decode()编译出来的是对象,现在输出json_decode($data,true)试下

代码如下 复制代码
echo json_decode($data,true);

结果:

Array ( [0] => Array ( [Name] => a1 [Number] => 123 [Contno] => 000 [QQNo] => ) [1] => Array ( [Name] => a1 [Number] => 123 [Contno] => 000 [QQNo] => ) [2] => Array ( [Name] => a1 [Number] => 123 [Contno] => 000 [QQNo] => ) )

可以看出 json_decode($data,true)输出的一个关联数组,由此可知json_decode($data)输出的是对象,而json_decode("$arr",true)是把它强制生成PHP关联数组.

假如我们获取的JSON数据如下:(可以使用curl、fsockopen等方式获取)

代码如下 复制代码
{
 "from":"zh",
 "to":"en",
 "trans_result":[
  {
   "src":"u4f60u597d",
   "dst":"Hello"
  }
 ]
}

一、json_decode返回array的方式:

json_decode($data,true);用json_decode函数返回array的方式得到:

代码如下 复制代码
Array
(
    [from] => zh
    [to] => en
    [trans_result] => Array
        (
            [0] => Array
                (
                    [src] => 你好
                    [dst] => Hello
                )

)

)

我们在PHP语言中可以用以下方法取得我们想要的值:

代码如下 复制代码
<?php
$data = <<<STR
{
 "from":"zh",
 "to":"en",
 "trans_result":[
  {
   "src":"u4f60u597d",
   "dst":"Hello"
  }
 ]
}
STR;
$jsondata=json_decode($data,true);
header("Content-Type: text/html; charset=UTF-8");
print_r($jsondata);www.111cn.net
echo "<br />".$jsondata['to']; //en
echo "<br />".$jsondata['trans_result'][0]['dst']; //Hello
?>

二、json_decode返回object的方式:

json_decode($data);

用json_decode函数返回object的方式得到:

代码如下 复制代码
stdClass Object
(
    [from] => zh
    [to] => en
    [trans_result] => Array
        (
            [0] => stdClass Object
                (
                    [src] => 你好
                    [dst] => Hello
                )

)

)

我们在PHP语言中可以用以下方法取得我们想要的值:

代码如下 复制代码
<?php
$data = <<<STR
{
 "from":"zh",
 "to":"en",
 "trans_result":[
  {
   "src":"u4f60u597d",
   "dst":"Hello"
  }
 ]
}

STR;
$jsondata=json_decode($data);
header("Content-Type: text/html; charset=UTF-8");
print_r($jsondata);
echo "<br />".$jsondata->from; //zh
echo "<br />".$jsondata->trans_result[0]->src; //你好
?>

更多详细内容请查看:http://www.111cn.net/phper/php-cy/57800.htm

转载于:https://www.cnblogs.com/alibai/p/3547485.html

php中json_decode返回数组或对象的实例相关推荐

  1. php 数组 json_decode,php中json_decode返回数组或对象_PHP教程

    1.json_decode() json_decode (PHP 5 >= 5.2.0, PECL json >= 1.2.0) json_decode - 对 JSON 格式的字符串进行 ...

  2. php中json_decode返回数组或对象

    转自:http://www.3lian.com/edu/2014/02-11/128395.html 1.json_decode() json_decode (PHP 5 >= 5.2.0, P ...

  3. matlab二重指针,VC++中函数返回数组指针或者带指针的结构体的编译方式是否可取? - 程序语言 - 小木虫 - 学术 科研 互动社区...

    libralibra 构造函数+析构函数应该是比较正规的做法吧, 你的结构体/类被提早释放的问题,是不是那个结构体是局部变量,当超出作用域时对象被销毁,如果存在析构函数,会被默认调用, 如果你返回结构 ...

  4. asp自定义函数可以返回数组或者对象

    asp自定义函数可以返回数组或者对象 例子: function GetAuditorInfoBySeqNo(filenostr,strSeqNo)   Dim auditorInfo(3)   sql ...

  5. android json字符串转成json对象_在PHP中处理JSON数组以及对象

    php中文网最新课程 每日17点准时技术干货分享 在 PHP 中处理 JSON 数组以及对象 与客户端混淆的常见原因是围绕 JSON 数组和对象,以及如何在 PHP 中指定他们.特别是,问题是由空对象 ...

  6. php 返回一个json对象,PHP给前端返回一个JSON对象的实例讲解

    解决问题:用php做后台时,如何给前端发起的AJAX请求返回一个JSON格式的"对象": 说明:我本身是一个前端,工作久了之后发现要是不掌握一门后端开发语言的话,总感觉有点无力.最 ...

  7. javascript中对一个对象数组按照对象某个属性进行排序

    在javascript中,对象和数组是两种不同的类型,这和php中的数组概念不同.在javascript中,也有一些精妙的算法,用来对一些对象进行排序.我在面试迅雷的时候,也拿到一道题,当时做题的时候 ...

  8. C++中函数返回数组指针的几种方法总结

    因为数组不能被拷贝,所以函数不能返回数组.不过,函数可以返回数组的指针或引用.返回数组指针的方法有以下几种:     1.方法一:使用类型别名.如下         typedef int arrt[ ...

  9. php中return返回数组,PHP中return返回数组的一点用法

    本文就学习中遇到的PHP函数return返回值的问题,这一点return用法进行了说明. 在函数的内部用return返回一个值或者为空来结束函数的运行.但是在return一个数组的时候,也可以在函数的 ...

最新文章

  1. Apache2.4.x下proxy_module、proxy_fcgi_module结合PHP-FPM解决内存不足问题
  2. AT5198 01 Matrix(构造)
  3. sencha touch tabsidebar 源码扩展
  4. 阿德莱德计算机专业排名,阿德莱德大学专业排名第几?2019年榜单揭晓!
  5. VC++,掀起你的盖头来
  6. java将030A转换为方块_JAVA试题
  7. MyBatis-Plus_通用service
  8. php+页面加载进度,基于jQuery实现模拟页面加载进度条_jquery
  9. MongoDB服务无法注册
  10. java开发和测试的不同_一些基础的面试的java知识,普及下。开发和测试都用得到。...
  11. android的GCM研究
  12. ArcgisPro3.0-3.0.1中文安装包下载及安装教程
  13. ELF格式文件符号表全解析及readelf命令使用方法
  14. mysql的启动脚本编写_老鸟带你开发专业规范的MySQL启动脚本
  15. 从入门到放弃C语言-入门篇(1)
  16. 境外诈骗,最新来自senegal的邮件诈骗
  17. SCZ的3篇有关sam的文章
  18. rⅰd的意思_自动挡车型上的P、R、N、D、S、L是什么意思?你懂吗?
  19. python symbols函数_Python应用 | 求解微积分!
  20. 跨专业计算机 调剂,考研调剂可以跨专业调剂吗

热门文章

  1. 手写一个简单的WinForm程序(2)
  2. Java(发布/订阅模式)
  3. 什么是高并发,如何避免高并发
  4. html--form表单常用操作
  5. docker --- mysql的部署
  6. javascript --- 抽象相等
  7. DOSbox汇编集成环境下的具体设置
  8. linux中如何查看进程占用了哪些端口?
  9. Linux 每日一练习!!反单引号·(键盘上数字1左边)··
  10. 理解 Delphi 的类(十) - 深入方法[17] - 提前声明