转自:http://www.3lian.com/edu/2014/02-11/128395.html

 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) 
}

$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; //你好
?>

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

  1. php中json_decode返回数组或对象的实例

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

  2. 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 格式的字符串进行 ...

  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. javascript中对一个对象数组按照对象某个属性进行排序

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

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

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

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

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

  9. js 中 对 复杂数组(包含对象)的去重, 但是 NaN和 null 是无法排除的

    其实这个还是 在一个知乎上看到的一个 题目,题主说的话 他面了一个七八年的前端 不会对 复杂数据进行过滤 只会记得 通过Set的方式进行 简单数组的过滤 大概就是 var obj = [ { a: 2 ...

最新文章

  1. SAP SD基础知识之税(Taxes)
  2. boost::sort模块实现展开排序示例
  3. UVA-1045 - The Great Wall Game(二分图最佳匹配)
  4. memcached安装和php扩展memcache安装
  5. 童年的飞秋大门已徐徐向我关闭
  6. Tushare在R中的使用
  7. AndroidStudio安卓原生开发_UI高级_自定义主题和样式---Android原生开发工作笔记129
  8. BZOJ4542: [Hnoi2016]大数
  9. discuz门户文章增加代码高亮
  10. linux ubuntu 五笔输入法,ubuntu16.04 安装五笔输入法
  11. 预约小程序开发:小程序开发的费用都包含了哪些?
  12. QQ企业邮箱和QQ邮箱之间的区别
  13. 学妹跑过来问我为啥Xshell 打不开了,让我帮她处理下【手把手讲解】
  14. 用vlookup函数就能判断你的Excel水平处于几段
  15. 多处理器/多核处理器的并行处理方法之——微线程
  16. 2021年5月23日哈工大scir笔试
  17. 关于tomcat启动时的警告 :maxActive is not used inDBCP2
  18. Android MultiDex实践:如何绕过那些坑?
  19. 如何删除有外键关系的两张表的数据
  20. 怎么注册微信公众平台

热门文章

  1. 维基百科里 的intj  直接复制的html .还是有点乱
  2. FAQ16:CHM的制作原理
  3. 计算机专业考研是英语几,计算机考研总分是多少
  4. wireshark抓包QQ号
  5. torch的Variable
  6. 教你简单去除 Office 2007 盗版提示
  7. InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD
  8. 申宝正规股票探底回升巨震洗盘
  9. 视角FOV测试—imatest
  10. JAVA面试题汇总 一