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.pswp.cn/news/273863.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/273863.shtml
英文地址,請注明出處:http://en.pswp.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…