国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

php中json_decode函數使用方法的而詳細介紹

2020-03-22 19:27:37
字體:
來源:轉載
供稿:網友
本篇文章給大家帶來的內容是關于php中json_decode函數使用方法的而詳細介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

我們都知道使用 json_decode 函數可以用來對 JSON 格式的字符串進行解碼。我們常用的形式如下:

 ?php$json = some_json_data $result = json_decode($json, true);

實際上 json_decode() 函數擁有多個參數,根據傳入的參數的不同,函數的行為也將不同。

解碼的數據

你可能見到過 json_decode() 函數報下面的錯誤:

Warning: json_decode() expects parameter 1 to be string, xxx given in

根據報錯信息來看,第一個參數必須為 string 類型,但是,實際上第一個參數可以是下面的三種類型:

string

null

bool

根據參數的類型的不同,函數的返回值也將發生變化。

返回值

json_decode() 函數默認在解析 JSON 數據正確地情況下會返回一個對象。

但是第二個參數傳入 true 后或者第四個參數傳入 JSON_OBJECT_AS_ARRAY 后,函數將在解析 JSON 數據正確地情況下返回數組而不是對象。

請注意我加黑的文字,json_decode() 函數在解析 JSON 數據正確地情況下返回對象或者數組,但是一些情況下函數將返回其它數據:

string 類型并且是正確的 JSON 格式的數據,解碼后返回對象或數組

從 PHP 5.6 開始,JSON 數據中存在 true,false 和 null,如果不采用小寫格式,將會解碼失敗,返回 null

string 類型的 true 、 false 、 null 返回其本身(全部為小寫情況下)

其它的 string 類型的參數返回 null

true / false / null 直接返回 null

其它類型的數據直接報錯

第三個參數遞歸深度為 1 的時候,直接返回 null

所以我們在使用 foreach 對解碼后的數據進行迭代時,需要留意解碼后的數據是否為數組,如果不是,那么在迭代時會報錯。

可以去 JSON 官方網站去了解什么樣的數據才是 JSON 格式的數據,

遞歸深度

第三個參數表示遞歸深度,深度必須大于 0,否則報錯。當遞歸深度為 1 時結果為 null,所以遞歸深度最小值為 2。

解碼選項

第四個參數用于設置選項:

JSON_PRETTY_PRINT 會填充一些空白字符進去,方便查看

JSON_UNESCAPED_SLASHES 不要編碼 /

JSON_UNESCAPED_UNICODE 不要編碼 unicode 字符, 默認是編碼成 /uXXXX

處理錯誤

我們也可以結合 json_last_error 函數、json_last_error_msg(PHP = 5.5) 函數與 @ 操作符一起使用:

 ?php$json = some_json_data $result = @json_decode((string)$json, true);if (json_last_error() !== JSON_ERROR_NONE) { throw new Exception(json_last_error_msg());}

以上就是php中json_decode函數使用方法的而詳細介紹的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 咸阳市| 贵定县| 宁蒗| 宜春市| 宁陵县| 大悟县| 监利县| 沛县| 包头市| 湖北省| 贞丰县| 百色市| 彭山县| 鄂伦春自治旗| 云梦县| 南汇区| 丰镇市| 洪江市| 沂南县| 四子王旗| 南安市| 桃源县| 会昌县| 观塘区| 灌云县| 和静县| 邢台市| 许昌市| 洛川县| 平江县| 株洲县| 浦县| 华坪县| 黄龙县| 梅州市| 姜堰市| 九龙城区| 新民市| 当涂县| 雅安市| 怀柔区|