在 PHP 中,json_encode
函数可能会遇到一些错误,例如无法编码的数据类型
function json_encode_safe($data) {
if (json_encode($data) === false) {
// 获取错误信息
$error = json_last_error();
// 根据错误代码获取错误描述
$error_msg = json_last_error_msg($error);
// 处理异常,例如记录日志或抛出自定义异常
throw new Exception("json_encode error: {$error_msg}");
}
return json_encode($data);
}
使用这个函数,你可以捕获 json_encode
的异常并进行相应的处理:
try {
$data = [
'name' => 'John',
'age' => 30,
'city' => 'New York',
'invalid_key' => 'This is an invalid value!' // 这个值将导致 json_encode 失败
];
$json_data = json_encode_safe($data);
echo $json_data;
} catch (Exception $e) {
// 处理异常,例如记录日志或显示错误消息
echo 'Error: ' . $e->getMessage();
}
在这个示例中,我们使用 json_encode_safe
函数来捕获 json_encode
的异常,并在发生错误时抛出一个自定义异常。然后,我们使用 try-catch
语句来捕获这个异常并进行处理。