json_encode php结果为NULL?

时间:2011-10-29 10:46:31

标签: php ajax null json

  

可能重复:
  json_encode is returning NULL?

我在php中遇到json_encode()的奇怪问题。非常简单的代码:

$content = json_encode(array('content1' => $arm_length,
                             'content2' => $body_length));
echo $content;

$arm_length$body_length变量包含两个选择下拉菜单的HTML标记。我的问题是echo显示NULL content1content2时的json_encode()。如果我将print_r($content)带走,只做{{1}},它会显示所有数据。

有谁知道这里发生了什么?是否有某些数据无法解析为JSON?我现在已经使用Ajax / PHP做了几次,从来没有遇到任何问题。

为此提供任何帮助。

2 个答案:

答案 0 :(得分:4)

json_encode()具有静默null包含无效(=非UTF-8)字符的属性的(未记录的)习惯。

确保您的输入数据采用UTF-8编码, 是该功能的文档要求。

  

如果编码失败,json_last_error()可用于确定错误的确切性质。 (仅适用于PHP 5.3)

相关:How to keep json_encode() from dropping strings with invalid characters

答案 1 :(得分:0)

您的vars中的

引号“应该像这样转义:\” 你可以通过add_slashes($ arm_length)

来做到这一点

json也会在\ n(新行)和其他一些字符上抛出错误,你可以在这里找到完整列表 - http://json.org/