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 异常
网友评论