《PHP編程:PHP使用JSON和將json還原成數(shù)組》要點(diǎn):
本文介紹了PHP編程:PHP使用JSON和將json還原成數(shù)組,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
PHP實(shí)例在之前我寫(xiě)過(guò)php返回json數(shù)據(jù)簡(jiǎn)單實(shí)例,方才上網(wǎng),突然發(fā)現(xiàn)一篇文章,也是介紹json的,還挺詳細(xì),值得參考.內(nèi)容如下
PHP實(shí)例從5.2版本開(kāi)端,PHP原生提供json_encode()和json_decode()函數(shù),前者用于編碼,后者用于解碼.
PHP實(shí)例一、json_encode()
PHP實(shí)例輸入
PHP實(shí)例再看一個(gè)工具轉(zhuǎn)換的例子:
PHP實(shí)例?輸入
PHP實(shí)例[/code]
{
"body":"another post",
"id":21,
"approved":true,
"favorite_count":1,
"status":null
}
[/code]
PHP實(shí)例?由于json只接受utf-8編碼的字符,所以json_encode()的參數(shù)必需是utf-8編碼,否則會(huì)得到空字符或者null.當(dāng)中文使用GB2312編碼,或者外文使用ISO-8859-1編碼的時(shí)候,這一點(diǎn)要特別注意.
PHP實(shí)例二、索引數(shù)組和聯(lián)系關(guān)系數(shù)組
PHP實(shí)例PHP支持兩種數(shù)組,一種是只保留"值"(value)的索引數(shù)組(indexed array),另一種是保留"名值對(duì)"(name/value)的關(guān)聯(lián)數(shù)組(associative array).
PHP實(shí)例由于javascript不支持關(guān)聯(lián)數(shù)組,所以json_encode()只將索引數(shù)組(indexed array)轉(zhuǎn)為數(shù)組格局,而將關(guān)聯(lián)數(shù)組(associative array)轉(zhuǎn)為對(duì)象格局.
PHP實(shí)例好比,現(xiàn)在有一個(gè)索引數(shù)組
PHP實(shí)例?輸入
PHP實(shí)例?如果將它改為聯(lián)系關(guān)系數(shù)組:
PHP實(shí)例?輸入變?yōu)?/p>
PHP實(shí)例?注意,數(shù)據(jù)格式從"[]"(數(shù)組)釀成了"{}"(對(duì)象).
PHP實(shí)例如果你必要將"索引數(shù)組"強(qiáng)制轉(zhuǎn)化成"對(duì)象",可以這樣寫(xiě)
PHP實(shí)例?又或
PHP實(shí)例?三、類(lèi)(class)的轉(zhuǎn)換
PHP實(shí)例上面是一個(gè)PHP的類(lèi):
PHP實(shí)例?如今,對(duì)這個(gè)類(lèi)的實(shí)例進(jìn)行json轉(zhuǎn)換:
PHP實(shí)例?輸出成果是
PHP實(shí)例?可以看到,除了公開(kāi)變量(public),其他東西(常量、私有變量、辦法等等)都遺失了.
PHP實(shí)例四、json_decode()
PHP實(shí)例該函數(shù)用于將json文本轉(zhuǎn)換為相應(yīng)的PHP數(shù)據(jù)布局.下面是一個(gè)例子:
PHP實(shí)例?通常情況下,json_decode()總是返回一個(gè)PHP對(duì)象,而不是數(shù)組.好比:
PHP實(shí)例?結(jié)果便是生成一個(gè)PHP對(duì)象:
PHP實(shí)例?如果想要強(qiáng)制生成PHP關(guān)聯(lián)數(shù)組,json_decode()必要加一個(gè)參數(shù)true:
PHP實(shí)例?成果就生成了一個(gè)關(guān)聯(lián)數(shù)組:
PHP實(shí)例五、json_decode()的常見(jiàn)差錯(cuò)
PHP實(shí)例下面三種json寫(xiě)法都是錯(cuò)的,你能看失足在哪里嗎?
PHP實(shí)例?對(duì)這三個(gè)字符串執(zhí)行json_decode()都將返回null,而且報(bào)錯(cuò).
PHP實(shí)例第一個(gè)的錯(cuò)誤是,json的分隔符(delimiter)只允許使用雙引號(hào),不能使用單引號(hào).第二個(gè)的錯(cuò)誤是,json名值對(duì)的"名"(冒號(hào)左邊的部分),任何情況下都必需使用雙引號(hào).第三個(gè)的錯(cuò)誤是,最后一個(gè)值之后不能添加逗號(hào)(trailing comma).
PHP實(shí)例另外,json只能用來(lái)表現(xiàn)對(duì)象(object)和數(shù)組(array),如果對(duì)一個(gè)字符串或數(shù)值使用json_decode(),將會(huì)返回null.
維易PHP培訓(xùn)學(xué)院每天發(fā)布《PHP編程:PHP使用JSON和將json還原成數(shù)組》等實(shí)戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/12251.html