如何确定字符串是否为有效的 JSON?
2022-08-30 11:07:52
有谁知道PHP的强大(和防弹)is_JSON函数片段?我(显然)有一种情况,我需要知道字符串是否是JSON。
嗯,也许可以通过JSONLint请求/响应运行它,但这似乎有点过分了。
有谁知道PHP的强大(和防弹)is_JSON函数片段?我(显然)有一种情况,我需要知道字符串是否是JSON。
嗯,也许可以通过JSONLint请求/响应运行它,但这似乎有点过分了。
如果您使用的是内置的json_decode
PHP 函数,json_last_error
会返回最后一个错误(例如,当您的字符串不是 JSON 时JSON_ERROR_SYNTAX
)。
通常json_decode
无论如何都会返回。null
对于我的项目,我使用此功能(请阅读json_decode()文档上的“注释”)。
将相同的参数传递给json_decode(),您可以检测特定的应用程序“错误”(例如深度错误)
> 菲律宾比索 = 5.6
// PHP >= 5.6
function is_JSON(...$args) {
json_decode(...$args);
return (json_last_error()===JSON_ERROR_NONE);
}
> PHP = 5.3
// PHP >= 5.3
function is_JSON() {
call_user_func_array('json_decode',func_get_args());
return (json_last_error()===JSON_ERROR_NONE);
}
用法示例:
$mystring = '{"param":"value"}';
if (is_JSON($mystring)) {
echo "Valid JSON string";
} else {
$error = json_last_error_msg();
echo "Not valid JSON string ($error)";
}