php判断字符串是否json格式


问题

如果使用JSON_ERROR_NONE来判断,不是很准确,如将数字123当字符decode处理:

json_decode('123');
var_dump(json_last_error());

json_last_error()===JSON_ERROR_NONE 返回的是true

请参阅以下函数:

/**
 * 判断字符串是否可转化为json
 * @param $str
 * @return bool
 */
function isJson($str)
{
    $data = json_decode($str);
    //if (($data and is_object($data)) or (is_array($data) and !empty($data))){
    if ($data and is_object($data)){
        return true;
    }
    return false;
}

原文链接:https://blog.yongit.com/note/140748.html