在PHP 中使用json_decode() 處理錯誤的JSON 資料
使用json_decode() 處理JSON 資料時,處理無效資料至關]
使用json_decode() 處理JSON 資料時,處理無效資料至關]使用json_decode() 處理JSON 資料時,處理無效資料至關重要有效地。雖然提供的腳本可以檢測到諸如 { bar: "baz" } 之類的字串的錯誤 JSON,但它無法處理諸如“無效資料”之類的非字串資料。
理解json_decode()使用 @ 運算子抑制警告
$data = @json_decode($_POST);
$data = @json_decode($_POST);
if ($data === null && json_last_error() !== JSON_ERROR_NONE) { echo "Incorrect data"; }
if ($資料=== null && json_last_error() !== JSON_ERROR_NONE) { echo "資料錯誤"; }
自訂錯誤處理function handle_json_error() { $error = json_last_error(); switch ($error) { case JSON_ERROR_NONE: return true; case JSON_ERROR_DEPTH: echo "Maximum depth exceeded"; break; case JSON_ERROR_STATE_MISMATCH: echo "Invalid or malformed JSON"; break; case JSON_ERROR_CTRL_CHAR: echo "Control character error"; break; case JSON_ERROR_SYNTAX: echo "Syntax error"; break; case JSON_ERROR_UTF8: echo "Malformed UTF-8 characters"; break; default: echo "Unknown error"; } return false; } if (!handle_json_error()) { echo "Bad JSON data!"; }
function handle_json_error() { $錯誤= json_last_error(); 開關($錯誤){ 案例 JSON_ERROR_NONE: 返回真; 案例 JSON_ERROR_DEPTH: echo「超出最大深度」; 休息; 案例 JSON_ERROR_STATE_MISMATCH: echo "無效或格式錯誤的 JSON"; 休息; 案例 JSON_ERROR_CTRL_CHAR: echo "控製字元錯誤"; 休息; 案例 JSON_ERROR_SYNTAX: echo "語法錯誤"; 休息; 案例 JSON_ERROR_UTF8: echo "格式錯誤的 UTF-8 字元"; 休息; 預設: echo "未知錯誤"; } 返回假; } 如果(!handle_json_error()){ echo "JSON 資料錯誤!"; }
此腳本提供詳細的錯誤訊息並處理各種 JSON 解析錯誤。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3