美文网首页
判断是否合法json串

判断是否合法json串

作者: pengtoxen | 来源:发表于2018-07-31 14:36 被阅读0次

    对接三方API的时候,经常会遇到接收的json串是非法的而导致程序出错.这种情况有什么有效的方法来避免呢?
    我们知道PHP的内置函数json_decode()在解析json字符串的时候,如果失败返回空,内置函数json_last_error()该函数见名思意返回 JSON 编码解码时最后发生的错误.

    function isJson($string)
    {
      json_decode($string);
      switch (json_last_error()) {
            case JSON_ERROR_NONE:
                echo ' - 没有错误发生';
            break;
            case JSON_ERROR_DEPTH:
                echo ' - 到达了最大堆栈深度';
            break;
            case JSON_ERROR_STATE_MISMATCH:
                echo ' - 无效或异常的 JSON';
            break;
            case JSON_ERROR_CTRL_CHAR:
                echo ' - 控制字符错误,可能是编码不对';
            break;
            case JSON_ERROR_SYNTAX:
                echo ' - 语法错误';
            break;
            case JSON_ERROR_UTF8:
                echo ' - 异常的 UTF-8 字符,也许是因为不正确的编码';
            break;
            case JSON_ERROR_UNSUPPORTED_TYPE:
                echo ' - 指定的类型,值无法编码';
            break;
            case JSON_ERROR_INVALID_PROPERTY_NAME:
                echo ' - 指定的属性名无法编码';
            break;
            case JSON_ERROR_UTF16:
                echo ' - 畸形的 UTF-16 字符,可能因为字符编码不正确';
            break;
            default:
                echo ' - Unknown error';
            break;
        }
    }
    

    这样我们在对接三方API的时候先判断接收的是否是合法json串再做逻辑处理,可以有效避免非法json串带来的问题.

    相关文章

      网友评论

          本文标题:判断是否合法json串

          本文链接:https://www.haomeiwen.com/subject/ijchvftx.html