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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/273863.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何精通js

参考: (1.)https://www.zhihu.com/search?typecontent&q%E5%A6%82%E4%BD%95%E7%B2%BE%E9%80%9Ajs

程序员怎么样才能进入微软?

程序员怎么样才能进入微软&#xff1f; 程序员到微软中国总裁 “打工皇帝”长沙晒成功之道 程序员面试之道之走进微软 应该是西北大学的学生&#xff0c;距离我好近&#xff08;我也在西安&#xff09;&#xff0c;可是又好远&#xff08;人家拿到了MS的offer&#xff09;。 专…

python中的装饰器-(重复阅读)

---1--- 假设我们要增强某个函数的功能&#xff0c;比如&#xff0c;在函数调用前后自动打印日志&#xff0c;但又不希望修改某个函数的定义&#xff0c;这种在代码运行期间动态增加功能的方式&#xff0c;称之为“装饰器”&#xff08;Decorator). 装饰器本质上是一个Python…

[转帖]好技术领导,差技术领导

团队合作一个优秀的技术领导必然是团队的一份子&#xff0c;他们认为当整个团队成功时自己才称得上成功。他们不仅要做好繁杂和不讨好的本职工作&#xff0c;还要清除项目中的障碍&#xff0c;从而让整个团队能够以100%的效率运转起来。一个好的技术领导会努力拓宽团队在技术上…

python有哪些常用的库

参考: (1).https://www.zhihu.com/question/20501628/answer/19542741(Python 常用的标准库以及第三方库有哪些&#xff1f;)

C#打开文件对话框和文件夹对话框

打开文件对话框OpenFileDialog OpenFileDialog ofd new OpenFileDialog();ofd.Filter "Excel文件(*.xls;*.xlsx)|*.xls;*.xlsx|所有文件|*.*";ofd.ValidateNames true;ofd.CheckPathExists true;ofd.CheckFileExists true;if (ofd.ShowDialog() DialogResult.O…

debian安装flash插件

$ sudo apt-get install flashplugin-nonfree 转载于:https://www.cnblogs.com/vipzrx/p/3554839.html

python中的拷贝

1.赋值: 只是复制了新对象的引用&#xff0c;不会开辟新的内存空间。 2.浅拷贝: 创建新对象&#xff0c;其内容是原对象的引用。 浅拷贝有三种形式&#xff1a;切片操作&#xff0c;工厂函数&#xff0c;copy模块中的copy函数。 如&#xff1a; lst [1,2,3,[4,5]] …

ZOJ 2112 Dynamic Rankings

这里是题目地址 其实就是带修改的区间第K大。 写了一下BIT套主席树&#xff0c;内存飞起&#xff0c;似乎需要特别的优化技巧 所以还是写了一下线段树套平衡树&#xff0c;跑了1s左右。 其实线段树套平衡树就是归并树的自然扩展而已。 归并树是把归并排序的过程建成一颗线段树…

python3[进阶]8.对象引用、可变性和垃圾回收

文章目录8.1变量不是盒子8.2 标识,相等性和别名8.2.1 在和is之间选择8.2.2 元组的相对不可变性8.3 默认做浅复制&#xff08;拓展&#xff09;为任意对象做深复制和浅复制深拷贝和浅拷贝有什么具体的区别呢&#xff1f;8.4 函数的参数作为引用时8.4.1 不要使用可变类型作为参数…

openfire修改服务器名称方法

1.登陆openfire管理页面&#xff0c;在主页面下方选择编辑属性&#xff0c;修改服务器名称为当前主机名称&#xff0c;点击保存属性&#xff0c;按页面提示重启服务器。 2.重启后&#xff0c;主页的服务器属性下的服务器名称出现一个叹号&#xff0c;鼠标放上去显示Found RSA c…

python (第八章)补充-可迭代对象(补充高阶函数,以及常用的高阶函数)

文章目录可迭代对象迭代器什么是迭代器什么是生成器生成器的作用生成器的注意事项总结&#xff1a;高阶函数什么是高阶函数&#xff1f;map()函数filter()函数reduce()函数参考可迭代对象 我们已经知道&#xff0c;可以直接作用于for循环的数据类型有以下几种&#xff1a; 一类…

网络阅读开篇

网络阅读也符合马太效应&#xff0c;投入的时间越多&#xff0c;获取的有效信息却越来越少&#xff0c;因此做出以下规定&#xff1a; 1、限制网络阅读时间&#xff1b; 2、每次阅读做总结。 本来想的挺简单的&#xff0c;随便搜了一下&#xff0c;居然一部小心拜读了两位大神的…

python (第二章)数据结构

文章目录2.5 对序列使用 和 建立由列表组成的列表2.6序列的增量赋值&#xff08;和&#xff09;关于 的谜题补充&#xff1a;extend()方法和有什么区别呢&#xff1f;2.7 list.sort方法和内置函数sorted(排序)2.8 用bisect来管理已排序的序列2.8.2用bisect.insort插入元素2.9 当…

数据库 CURD测试题【简单】

文章目录1.组合两个表基本信息要求答案2.第二高的薪水基本信息要求答案3.查找重复的电子邮箱基本信息要求答案4.超过经理收入的员工基本信息要求答案&#xff1a;5.超过5名学生的课信息&#xff1a;要求答案6.有趣的电影信息要求答案7.交换工资&#xff08;updeta,条件判断&…

JAVA学习资料整理

今天偶然间发现之前一个群里发过的一篇关于JAVA学习资料的东西。本着服务大众的精神&#xff0c;搬来了博客园&#xff1a; 《JAVA编程思想》第四版&#xff08;英文原版&#xff09;下载地址&#xff1a;http://115.com/file/e7fzi0fm《JAVA开发实战经典》下载地址&#xff1a…

mysql快速了解

文章目录数据库了解&#xff1a;快速操作&#xff1a;安装mysql启动,关闭,重启mysql服务连接mysql的root用户创建数据库删除数据库选择数据库mysql 数据类型MySQL 创建数据表MySQL 删除数据表MySQL 插入数据MySQL 查询数据MySQL WHERE 子句BINARY 关键字MySQL UPDATE 更新批量更…

javascript编程风格(粗略笔记)

1、空格 紧凑型&#xff1a;    project.MyClass function(arg1, arg2){  松散型&#xff1a;    for( i 0; i < length; i ){ 2、代码行长度  最多80个字符 3、命名: 采用驼峰式方法命名(开始的第一个单词小写&#xff0c;之后的所有单词首字母大写)  var …

数据结构 面试题

文章目录1.数组1.1 寻找数组中第二小的元素1.2 找到数组中第一个不重复出现的整数1.3合并两个有序数组1.4 重新排列数组中的正值和负值2.栈2.1 前缀表达式&#xff0c;中缀表达式&#xff0c;后缀表达式2.1.1 中缀表达式转化为后缀表达式2.1.2 中缀表达式转化为前缀表达式2.2使…

WPF之无法触发KeyDown或者KeyUp键盘事件

有时候我们可能在Panel(StackPanel、Canvas、Grid)上或者是在一些默认不支持Focus的控件上添加了KeyDown或者KeyUp&#xff0c;可是残酷的现实告诉我们&#xff0c;这是无法触发的&#xff0c;怎么办呢&#xff0c;很简单&#xff0c;只需一句代码。 private void MouseLeftBut…