json输出时数据编码失败后抛出异常

This commit is contained in:
yunwuxin
2016-07-14 15:55:09 +08:00
parent d38543ca1e
commit 371ecbc57a
2 changed files with 17 additions and 4 deletions

View File

@@ -21,6 +21,7 @@ class Json extends Response
]; ];
protected $contentType = 'application/json'; protected $contentType = 'application/json';
/** /**
* 处理数据 * 处理数据
* @access protected * @access protected
@@ -31,6 +32,11 @@ class Json extends Response
{ {
// 返回JSON数据格式到客户端 包含状态信息 // 返回JSON数据格式到客户端 包含状态信息
$data = json_encode($data, $this->options['json_encode_param']); $data = json_encode($data, $this->options['json_encode_param']);
if ($data === false) {
throw new \InvalidArgumentException(json_last_error_msg());
}
return $data; return $data;
} }

View File

@@ -35,8 +35,15 @@ class Jsonp extends Response
{ {
// 返回JSON数据格式到客户端 包含状态信息 [当url_common_param为false时是无法获取到$_GET的数据的故使用Request来获取<xiaobo.sun@qq.com>] // 返回JSON数据格式到客户端 包含状态信息 [当url_common_param为false时是无法获取到$_GET的数据的故使用Request来获取<xiaobo.sun@qq.com>]
$var_jsonp_handler = Request::instance()->param($this->options['var_jsonp_handler'], ""); $var_jsonp_handler = Request::instance()->param($this->options['var_jsonp_handler'], "");
$handler = !empty($var_jsonp_handler) ? $var_jsonp_handler : $this->options['default_jsonp_handler']; $handler = !empty($var_jsonp_handler) ? $var_jsonp_handler : $this->options['default_jsonp_handler'];
$data = $handler . '(' . json_encode($data, $this->options['json_encode_param']) . ');';
$data = json_encode($data, $this->options['json_encode_param']);
if ($data === false) {
throw new \InvalidArgumentException(json_last_error_msg());
}
$data = $handler . '(' . $data . ');';
return $data; return $data;
} }