php json_encode有时返回0或零值

php json_encode有时返回0或零值,php,mysql,json,Php,Mysql,Json,出了点问题,我正在mysql数据库中保存json_encode响应。它有时会保存0值。我100%确定我的json_encode函数不会将0作为参数接收,因为它总是获取空数组或关联数组,因此没有机会在参数中接收0 问题在于为什么json_encode有时返回0值。 我在db表中有列类型longtext,我在其中保存了它的响应。 角色类型有问题吗?像UTF8还是非UTF8 这里有一个代码片段: $jsonPayload = []; if (isset($obj['answer']) &&a

出了点问题,我正在mysql数据库中保存json_encode响应。它有时会保存
0
值。我100%确定我的json_encode函数不会将
0
作为参数接收,因为它总是获取空数组或关联数组,因此没有机会在参数中接收
0

问题在于为什么json_encode有时返回
0
值。 我在db表中有列类型
longtext
,我在其中保存了它的响应。 角色类型有问题吗?像UTF8还是非UTF8

这里有一个代码片段:

$jsonPayload = [];

if (isset($obj['answer']) && (!empty($obj['answer']) || $obj['answer'] == 0)) {
       $jsonPayload[$form_fields[$i]->id] = $obj;         
}

return json_encode($jsonPayload);
使用


它可能会工作。

您使用的关系数据库完全错误。您不需要将数组或任何编码的内容放入数据库。您将每个值放入它们的表列中。这就是使用关系数据库的含义。var转储数组,以便我们可以看到它
json_encode
不返回
0
,但它可以返回
false
。我打赌你的编码器中有一些非UTF8字符根据我的调查,由于非UTF8字符,它返回0。但是没有这样的字符,我可以在传递非UTF8字符时测试json_encode是否返回0。我想复制它。兄弟,它返回0,你认为它的字符类型有问题吗?如UTF8或非UTF8字符。能否显示打印($jsonPayload);结果?没有兄弟,它在实时服务器上,我不知道负载中会出现什么,但负载中可能会出现特殊字符,我需要这样的字符,返回0表示json\u编码。您可以按照“否”进行操作,这不是问题
json_encode($jsonPayload,JSON_UNESCAPED_SLASHES);