您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“php如何將json字符串轉(zhuǎn)換為數(shù)組和對象”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
在我們學(xué)習(xí)Json字符串轉(zhuǎn)換為PHP對象和數(shù)組之前,讓我們先回顧一下Json字符串的格式。Json字符串是一個(gè)文本數(shù)據(jù),使用鍵值對的形式存儲數(shù)據(jù)。每個(gè)鍵值對由一個(gè)“鍵”和一個(gè)“值”組成,“鍵”用雙引號包圍,“值”可以是一個(gè)數(shù)值、一個(gè)字符串、一個(gè)布爾值、一個(gè)空值、一個(gè)Json對象或一個(gè)Json數(shù)組。
下面是一個(gè)Json字符串的例子:
{
"name": "張三",
"age": 25,
"gender": "男",
"address": {
"province": "北京",
"city": "朝陽區(qū)",
"street": "和平路"
},
"hobbies": [
"籃球",
"游泳",
"旅游"
]
}
在上面的例子中,“name”、“age”、“gender”、“address”和“hobbies”是這個(gè)Json字符串的“鍵”,它們分別對應(yīng)著“張三”、“25”、“男”、“address”和“hobbies”。其中,“address”是一個(gè)Json對象,“hobbies”是一個(gè)Json數(shù)組。
在PHP中,將Json字符串轉(zhuǎn)換為數(shù)組的方法是使用json_decode()函數(shù)。json_decode()函數(shù)的語法如下:
mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )
其中,$json參數(shù)是要轉(zhuǎn)換的Json字符串,$assoc參數(shù)表示是否將Json對象轉(zhuǎn)換為PHP關(guān)聯(lián)數(shù)組(true表示轉(zhuǎn)換為PHP關(guān)聯(lián)數(shù)組,false表示轉(zhuǎn)換為PHP對象),$depth參數(shù)表示轉(zhuǎn)換的最大深度(默認(rèn)為512),$options參數(shù)表示解碼時(shí)的選項(xiàng)(默認(rèn)為0)。
下面是一個(gè)將Json字符串轉(zhuǎn)換為PHP數(shù)組的例子:
<?php
$json_str = '{"name":"張三","age":25,"gender":"男","address":{"province":"北京","city":"朝陽區(qū)","street":"和平路"},"hobbies":["籃球","游泳","旅游"]}';
$arr = json_decode($json_str, true);
print_r($arr);
?>
在上面的例子中,我們首先定義了一個(gè)Json字符串 $json_str。我們使用json_decode()函數(shù)將 $json_str 轉(zhuǎn)換為PHP數(shù)組,并將結(jié)果存儲在 $arr 變量中。最后,我們使用print_r()函數(shù)輸出了數(shù)組的內(nèi)容。
輸出結(jié)果如下所示:
Array
(
[name] => 張三
[age] => 25
[gender] => 男
[address] => Array
(
[province] => 北京
[city] => 朝陽區(qū)
[street] => 和平路
)
[hobbies] => Array
(
[0] => 籃球
[1] => 游泳
[2] => 旅游
)
)
除了將Json字符串轉(zhuǎn)換為PHP數(shù)組,還可以將其轉(zhuǎn)換為PHP對象。這個(gè)過程也可以使用json_decode()函數(shù)來實(shí)現(xiàn),只需要將第二個(gè)參數(shù)設(shè)置為false或省略即可。
下面是一個(gè)將Json字符串轉(zhuǎn)換為PHP對象的例子:
<?php
$json_str = '{"name":"張三","age":25,"gender":"男","address":{"province":"北京","city":"朝陽區(qū)","street":"和平路"},"hobbies":["籃球","游泳","旅游"]}';
$obj = json_decode($json_str);
print_r($obj);
?>
在上面的例子中,我們將第二個(gè)參數(shù)設(shè)置為false,其結(jié)果會被轉(zhuǎn)換為一個(gè)PHP對象。
輸出結(jié)果如下所示:
stdClass Object
(
[name] => 張三
[age] => 25
[gender] => 男
[address] => stdClass Object
(
[province] => 北京
[city] => 朝陽區(qū)
[street] => 和平路
)
[hobbies] => Array
(
[0] => 籃球
[1] => 游泳
[2] => 旅游
)
)
如果Json字符串中含有對象,并且需要將其轉(zhuǎn)換為PHP關(guān)聯(lián)數(shù)組,可以先將其轉(zhuǎn)換為PHP對象,然后使用 typecast() 函數(shù)將其轉(zhuǎn)換為關(guān)聯(lián)數(shù)組。
下面是一個(gè)將Json字符串中的對象轉(zhuǎn)換為PHP關(guān)聯(lián)數(shù)組的例子:
<?php
$json_str = '{"name":"張三","age":25,"gender":"男","address":{"province":"北京","city":"朝陽區(qū)","street":"和平路"},"hobbies":["籃球","游泳","旅游"]}';
$obj = json_decode($json_str);
$arr = json_decode(json_encode($obj), true);
print_r($arr);
?>
在上面的例子中,我們首先使用json_decode()函數(shù)將Json字符串轉(zhuǎn)換為PHP對象。然后使用json_encode()函數(shù)將PHP對象轉(zhuǎn)換為Json字符串,并再次使用json_decode()函數(shù)將其轉(zhuǎn)換為PHP關(guān)聯(lián)數(shù)組。最后,我們使用print_r()函數(shù)輸出了數(shù)組的內(nèi)容。
輸出結(jié)果與第一個(gè)例子相同。
“php如何將json字符串轉(zhuǎn)換為數(shù)組和對象”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。