【问题标题】:post JSON object to PHP将 JSON 对象发布到 PHP
【发布时间】:2011-11-21 12:40:41
【问题描述】:

所以我有一个巨大的 javascript 对象,我想将它传递给 PHP。

我正在尝试的是: - 使用 stringify 将其作为隐藏字段的值 - 点击提交

在 PHP 中,如果我

echo $_POST['hidden'] 

JSON 字符串看起来很完美, 但是当我使用

json_decode($_POST['hidden']) 

我得到 NULL

如果我使用 jQuery 的

$.post

,我得到了想要的结果:我可以在上面使用 json_decode。

有人可以向我解释我做错了什么吗? 谢谢

【问题讨论】:

标签: php json


【解决方案1】:

您的 JSON 字符串可能包含一些额外的斜杠。 在json_decode 之前尝试strip_slashes

【讨论】:

    【解决方案2】:

    也许你需要做 urldecode? http://php.net/manual/en/function.urldecode.php

    【讨论】:

      【解决方案3】:

      这里是相同的错误类型

      //wrong
      $str1 = <<<EOD
      {“dealList”:”\r\n\t”}
      EOD;
      
      //right
      $str2 = <<<EOD
      {“dealList”:”\\r\\n\\t”}
      EOD;
      
      //wrong
      $str3 = <<<EOD
      {‘dealList’:'\r\n’}
      EOD;
      
      //wrong
      $str4 = <<<EOD
      {‘dealList’:'\\r\\n’}
      EOD;
      
      //wrong
      $str5 = “{‘dealList’:'\r\n’}”;
      
      //wrong
      $str6 = “{‘dealList’:'\\r\\n’}”;
      
      //right
      $str7 = ‘{“dealList”:”\r\n”}’;
      
      $c = json_decode($str1);
      

      【讨论】:

      • 好的,这似乎是合理的。但是如果我在 javascript 端使用 (JSON2.js)JSON.stringify(object) ,我通过隐藏的表单字段发布该字符串,我该如何控制它以便获得正确的字符串?
      猜你喜欢
      • 2017-06-06
      • 1970-01-01
      • 2015-10-14
      • 1970-01-01
      • 1970-01-01
      • 2012-03-20
      • 2017-10-09
      • 2013-05-31
      • 1970-01-01
      相关资源
      最近更新 更多