php中對(duì)內(nèi)置函數(shù)json_encode和json_decode的異常處理
在php中,json_encode和json_decode是很常用的函數(shù),具體用法可以查看相關(guān)文檔,這里主要說(shuō)一下錯(cuò)誤處理。
平時(shí)我們?cè)谑褂眠@兩個(gè)方法的時(shí)候可能沒怎么注意錯(cuò)誤處理,有時(shí)候如果傳入的參數(shù)格式不正確就會(huì)導(dǎo)致報(bào)錯(cuò)了。下面是錯(cuò)誤處理的方式:
json_last_error — 返回最后發(fā)生的錯(cuò)誤,如果有,返回 JSON 編碼解碼時(shí)最后發(fā)生的錯(cuò)誤。
int json_last_error ( void )
<?php // 一個(gè)有效的 json 字符串 $json[] = '{"Organization": "PHP Documentation Team"}'; // 一個(gè)無(wú)效的 json 字符串會(huì)導(dǎo)致一個(gè)語(yǔ)法錯(cuò)誤,在這個(gè)例子里我們使用 ' 代替了 " 作為引號(hà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中對(duì)內(nèi)置函數(shù)json_encode和json_decode的異常處理的文章就介紹到這了,更多相關(guān)php處理json_encode和json_decode異常內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
版權(quán)聲明:
本站所有文章和圖片均來(lái)自用戶分享和網(wǎng)絡(luò)收集,文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請(qǐng)勿用于商業(yè)用途,如果損害了您的權(quán)利,請(qǐng)聯(lián)系網(wǎng)站客服處理。