php json_encode输出空白问题
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/json
免费下载资源
·
今天数组json_encode转json的时候,输出一片空白,难道是数据量太大了?导致输出空白了?
后来检查下php程序似乎没有出错,就是json_encode的时候出现了问题,那到底是什么问题呢?
我们先来说下json_encode这个函数
(PHP 5 >= 5.2.0, PECL json >= 1.2.0, PHP 7)
json_encode — 对变量进行 JSON 编码
说明
-----------------------------------------------------------
string json_encode ( mixed $value [, int $options = 0 [, int $depth = 512 ]] )
参数
-----------------------------------------------------------
value
待编码的 value ,除了resource 类型之外,可以为任何数据类型。
所有字符串数据的编码必须是 UTF-8。
options
由以下常量组成的二进制掩码: JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT, JSON_PRESERVE_ZERO_FRACTION, JSON_UNESCAPED_UNICODE, JSON_PARTIAL_OUTPUT_ON_ERROR。
depth
设置最大深度。 必须大于0。
返回值
-----------------------------------------------------------
成功则返回 JSON 编码的 string 或者在失败时返回 FALSE 。
注意:上面对参数明确说明(所有字符串数据的编码必须是 UTF-8)
可能正是因为这一点导致我输出错误,但是我怎么知道,会是这个错误呢?因为我发现有一个这个函数json_last_error
我们看下这个函数
(PHP 5 >= 5.3.0, PHP 7)
json_last_error — 返回最后发生的错误
说明
-----------------------------------------------------------
int json_last_error ( void )
如果有,返回 JSON 编码解码时最后发生的错误。
参数
-----------------------------------------------------------
此函数没有参数。
返回值
-----------------------------------------------------------
返回一个整型(integer),这个值会是以下的常量之一:
用法:
例如:
echo json_encode(array('error' => '0', 'message' => '没有错误'));
var_dump(json_last_error());
//这里也可以是json_decode
//错误码对照
0 JSON_ERROR_NONE
1 JSON_ERROR_DEPTH
2 JSON_ERROR_STATE_MISMATCH
3 JSON_ERROR_CTRL_CHAR
4 JSON_ERROR_SYNTAX
5 JSON_ERROR_UTF8
6 JSON_ERROR_RECURSION
7 JSON_ERROR_INF_OR_NAN
8 JSON_ERROR_UNSUPPORTED_TYPE
我返回的是 int 5,对照返回错误码,自然而然就是(异常的 UTF-8 字符,也许是因为不正确的编码)这个错误了,知道错误后,然后检查你要返回的数据,再做下处理就OK了。
GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e
4 个月前
8c391e04
6 个月前
更多推荐
已为社区贡献1条内容
所有评论(0)