【发布时间】:2014-05-10 23:30:48
【问题描述】:
我有一个 Android 应用程序、PHP 页面和 MySql 数据库。
android 应用程序向服务器发送一个字符串参数,我使用 Gson,所以我知道 Json 字符串是正确的。
在服务器端,我将该 json 字符串存储为 Text 字段。
在 Web 客户端上,我从数据库中获取该字段并执行 json_decode 并收到NULL。
大部分网站都是PHPMAKER 10写的,所以我用它的数据库连接。
$result="";
$rs->MoveFirst();
if ($rs) {
$result = $rs->fields[0];
}
$rs->Close();
$extras = json_decode($result, true);
我检查了 Json validator 中的那个 json,它看起来不错。
任何想法为什么我会得到空值? (可能是编码)
编辑: 我做了以下检查:
echo "<script> var x = {$result}; console.log(x.length)</script>";
Chrome 出现以下错误:
Uncaught SyntaxError: Unexpected token ILLEGAL
编辑 2:
如果我打印该字符串 echo $result 并将其复制到一个变量中,它就可以工作。
【问题讨论】:
-
var_export($result)的结果是什么? -
一个字符串,我用var_dump检查过。
-
json_last_error_msg函数会给你错误信息。 -
错误只是数字 4 (JSON_ERROR_SYNTAX),但我已经检查了 json。
-
JSON 字符串是否太长而无法手动检查?开始删除位,或从向
{}添加位开始,看看解析器不喜欢哪个部分。