主頁 > 知識庫 > php中對內(nèi)置函數(shù)json_encode和json_decode的異常處理

php中對內(nèi)置函數(shù)json_encode和json_decode的異常處理

熱門標(biāo)簽:合肥ai電銷機(jī)器人費用 滄州電銷外呼系統(tǒng)價格 手機(jī)外呼系統(tǒng)什么原理 上海400客服電話怎么申請 溫州外呼系統(tǒng)招商 400電話個人能不能辦理 銀行信貸電話機(jī)器人 天津電銷外呼系統(tǒng)違法嗎 凱立德地鐵站地圖標(biāo)注

在php中,json_encode和json_decode是很常用的函數(shù),具體用法可以查看相關(guān)文檔,這里主要說一下錯誤處理。

平時我們在使用這兩個方法的時候可能沒怎么注意錯誤處理,有時候如果傳入的參數(shù)格式不正確就會導(dǎo)致報錯了。下面是錯誤處理的方式:

json_last_error — 返回最后發(fā)生的錯誤,如果有,返回 JSON 編碼解碼時最后發(fā)生的錯誤。

int json_last_error ( void )
常量 含義 可用性
JSON_ERROR_NONE 沒有錯誤發(fā)生
JSON_ERROR_DEPTH 到達(dá)了最大堆棧深度
JSON_ERROR_STATE_MISMATCH 無效或異常的 JSON
JSON_ERROR_CTRL_CHAR 控制字符錯誤,可能是編碼不對
JSON_ERROR_SYNTAX 語法錯誤
JSON_ERROR_UTF8 異常的 UTF-8 字符,也許是因為不正確的編碼。 PHP 5.3.3
JSON_ERROR_RECURSION One or more recursive references in the value to be encoded PHP 5.5.0
JSON_ERROR_INF_OR_NAN One or more NAN or INF values in the value to be encoded PHP 5.5.0
JSON_ERROR_UNSUPPORTED_TYPE 指定的類型,值無法編碼。 PHP 5.5.0
JSON_ERROR_INVALID_PROPERTY_NAME 指定的屬性名無法編碼。 PHP 7.0.0
JSON_ERROR_UTF16 畸形的 UTF-16 字符,可能因為字符編碼不正確。 PHP 7.0.0
?php
// 一個有效的 json 字符串
$json[] = '{"Organization": "PHP Documentation Team"}';
 
// 一個無效的 json 字符串會導(dǎo)致一個語法錯誤,在這個例子里我們使用 ' 代替了 " 作為引號
$json[] = "{'Organization': 'PHP Documentation Team'}";
 
 
foreach ($json as $string) {
    echo 'Decoding: ' . $string;
    json_decode($string);
 
    switch (json_last_error()) {
        case JSON_ERROR_NONE:
            echo ' - No errors';
        break;
        case JSON_ERROR_DEPTH:
            echo ' - Maximum stack depth exceeded';
        break;
        case JSON_ERROR_STATE_MISMATCH:
            echo ' - Underflow or the modes mismatch';
        break;
        case JSON_ERROR_CTRL_CHAR:
            echo ' - Unexpected control character found';
        break;
        case JSON_ERROR_SYNTAX:
           echo ' - Syntax error, malformed JSON';
        break;
        case JSON_ERROR_UTF8:
            echo ' - Malformed UTF-8 characters, possibly incorrectly encoded';
        break;
        default:
            echo ' - Unknown error';
        break;
    }
 
    echo PHP_EOL;
}

php官方參考文檔:https://secure.php.net/manual/zh/function.json-last-error.php

到此這篇關(guān)于php中對內(nèi)置函數(shù)json_encode和json_decode的異常處理的文章就介紹到這了,更多相關(guān)php處理json_encode和json_decode異常內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 一篇文章教你JS函數(shù)繼承
  • js中函數(shù)的length是多少
  • JavaScript基礎(chǔ)系列之函數(shù)和方法詳解
  • JavaScript sleep睡眠函數(shù)的使用
  • 如何讓你的JavaScript函數(shù)更加優(yōu)雅詳解
  • JavaScript中的50+個實用工具函數(shù)小結(jié)
  • 關(guān)于JavaScript回調(diào)函數(shù)的深入理解
  • JavaScript中子函數(shù)訪問外部變量的3種解決方法
  • javascript函數(shù)式編程基礎(chǔ)

標(biāo)簽:洛陽 赤峰 金華 白城 七臺河 酒泉 怒江 溫州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《php中對內(nèi)置函數(shù)json_encode和json_decode的異常處理》,本文關(guān)鍵詞  php,中,對,內(nèi)置,函數(shù),json,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《php中對內(nèi)置函數(shù)json_encode和json_decode的異常處理》相關(guān)的同類信息!
  • 本頁收集關(guān)于php中對內(nèi)置函數(shù)json_encode和json_decode的異常處理的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章