PHP解析json响应数据时,有 json_encode 以及 json_decode 两个函数可供使用。然而,这两个函数并没有恰当的错误抛出表现。json_encode 失败时仅会返回false;json_decode 失败时返回null,而null可作为合法的JSON数据。获取错误信息的方法是,调用json_last_error()和json_last_error_msg(),它们将分别返回机器可读(code)和人类可读(msg)的全局错误状态。
PHP7.3中为JSON函数新增了JSON_THROW_ON_ERROR常量用于忽略全局错误状态。当错误发生时,JSON函数将会抛出jsonException异常,一场消息(msg)为json_last_error_msg()的返回值,异常代码(code)为json_last_error的返回值。例:
json_encode($data, JSON_THROW_ON_ERROR);
json_decode("invalid json", null, 512, JSON_THROW_ON_ERROR);
// 抛出 jsonException 异常







网友评论