繁体   English   中英

php json_encode失败而没有错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM