[英]php json_encode fails without error
PHP Version: 5.6.15RC1
Compiler: MSVC11 (Visual C++ 2012)
Architecture:x86
我在对多维php数组进行json_encode编码时遇到问题。 主要问题是没有错误生成(json_last_error = 0)。
该数组由一个字符串索引,并且使用以下方法分别测试了这些索引中的每个索引,并在外部索引上对数组进行了编译:
$test = json_encode($account[$q_id]);
if (strlen($test) < 2) {
$error = json_last_error();
}
单步执行几个显示正确的json输出。 然后在if语句中放置一个断点以标识任何编码问题,但是它从未在$ error ...行上停止。
数据库连接:
$connection_cfg = array("Database" => $db["database"], "CharacterSet" => "UTF-8", "UID" => $db["uname"], "PWD" => $db["pword"], "ReturnDatesAsStrings" =>true);
$this->connection = sqlsrv_connect($db["host"], $connection_cfg);
我被困在如何进行调试。
一个空的JSON字符串如下所示:
[]
那是两个字符。 您的错误检测将不起作用,因为它会检查1个或更少的字符。
更改
if (strlen($test) < 2) {
$error = json_last_error();
}
至
if (strlen($test) == 2) {
$error = json_last_error();
}
并且您的错误检测应该可以正常工作。
如果您无法解决JSON错误中指示的问题,请使用错误更新我们。
吸取的教训是,调试工具(netbeans watch等)应该始终存在一些不信任感。 当看到一个随机的'{'作为输出时,我创建了错误检查(不知道为什么netbeans这样显示它)。 这是断行的javascript,例如
var a=<?php echo $thejsonstuff ?>
我首先尝试了从netbeans结果进行php调试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.