一尘不染

如何正确使用JSON.stringify和json_decode()

json

我试图通过以下方式将多维度Javascript数组传递到网站上的另一页:

  • 在数组上使用JSON.stringify

  • 将结果值分配给输入字段

  • 将该字段发布到第二页

  • 在发布的值上使用json_decode

  • 然后使用var_dump进行测试

  • (直接回显已发布的变量只是看它是否通过了)

第一页的Javascript:

var JSONstr = JSON.stringify(fullInfoArray);
document.getElementById('JSONfullInfoArray').value= JSONstr;

第二页的php:

$data = json_decode($_POST["JSONfullInfoArray"]);
var_dump($data);

echo($_POST["JSONfullInfoArray"]);

回声工作正常,但var_dump返回NULL

我做错了什么?


这使我得到解决:

$postedData = $_POST["JSONfullInfoArray"];
$tempData = str_replace("\\", "",$postedData);
$cleanData = json_decode($tempData);
var_dump($cleanData);

我不确定为什么,但是帖子中出现了一堆“ \”字符,将字符串中的每个变量分开

json_last_error()归还Bart的想法弄清楚了JSON_ERROR_SYNTAX


阅读 379

收藏
2020-07-27

共1个答案

一尘不染

您需要检查中的内容$_POST["JSONfullInfoArray"]。如果某些内容无法解析,json_decode则会返回null。这不是很有帮助,因此null返回时应检查json_last_error()以获取更多有关发生问题的信息。

2020-07-27