【问题标题】:var_dump says String of 75 characters, can't echo it and doesn't json_decode()var_dump 表示 75 个字符的字符串,不能回显它,也不能 json_decode()
【发布时间】:2012-12-24 19:26:13
【问题描述】:

我正在使用 AJAX 将一些数据发布到 PHP 页面,但我无法对其进行解码。 json_decode() 返回 NULL。所以我想如果我回显它,我可以通过 jsonlint 运行它。但什么都没有出现。为了查明数据是否到达 PHP 页面,我尝试var_dump() 数据。它显示出来很奇怪:

string(75) "{\"title\":\"fds\",\"body\":\"fds\",\"tags\":\"fds\",\"type\":\"question\"}"

所以数据到达页面。删除反斜杠后,我通过 jsonlint 运行它,它说 JSON 是有效的。这怎么可能?

根据var_dump() 和 jsonlint,我得到了一个有效的 75 个字符的 JSON 字符串,但我不能 echo 它或 json_decode() 它。

编辑:
显然我做错了什么,我现在可以回应它(我可能在$_POST 数组键中打错了)。它呼应了这一点:

{\"title\":\"tre\",\"body\":\"tre\",\"tags\":\"tre\",\"type\":\"question\"}

再一次,没有反斜杠 JSONLint 告诉我它是有效的 JSON。

编辑 2:
这是 PHP 代码:

// code to check if the user is logged in
$post = json_decode($_POST['q']);
echo "var_dump(\$_POST['q']): ";
var_dump($_POST['q']);
echo "<BR /><BR />";
echo "var_dump(\$post): ";
var_dump($post);    

输出:

var_dump($_POST['q']): string(74) "{\"title\":\"gfd\",\"body\":\"gf\",\"tags\":\"gfd\",\"type\":\"question\"}" 

var_dump($post): NULL

JS代码:

var simpleObj = {title: "rew", body: "rew", tags: "rew", type: "question"};
$.post('savepost.php', "q=" + JSON.stringify(simpleObj), function(data) {
    $('#resultDiv').html("DATA: " + data);
});

最终编辑:
我终于自己解决了。实际上我什至在我问之前就发现了这个问题,但认为它是“无害的”,并且认为这不会导致这个问题。

【问题讨论】:

  • 向我们展示你的代码..尝试console.log(response)你的ajax响应
  • AJAX 响应是 var_dump 输出。
  • @mithunsatheesh 查看我的编辑。
  • 向我们展示代码.. 将其放在小提琴上或发布在您的 qn 中。
  • @mithunsatheesh 如果 JSON 有效并且到达我的 PHP,我认为我的 JS 可能是正确的,所以我包含了我的 PHP。

标签: ajax json var-dump


【解决方案1】:

我找到了答案!当我通过jsonlint.com 运行它时,它说由于反斜杠而无效。我认为这些只是为了将 JSON 中的引号标记为普通引号,而不是字符串结尾和开头引号,我认为它们是“无害的”。
然后我想到了函数addslashes(),并认为也应该有一个相反的函数。我找到了stripslashes() 并解决了问题。

新代码:

// code to check if the user is logged in
$post = json_decode(stripslashes($_POST['q']));
echo "var_dump(\$_POST['q']): ";
var_dump($_POST['q']);
echo "<BR /><BR />";
echo "var_dump(\$post): ";
var_dump($post);    

【讨论】:

    猜你喜欢
    • 2015-01-05
    • 1970-01-01
    • 2016-06-15
    • 2020-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-11
    • 1970-01-01
    相关资源
    最近更新 更多