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

2022-08-30 09:51:14

我试图通过以下方式将一个多维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()JSON_ERROR_SYNTAX


答案 1

当你使用JSON.stringify()保存一些数据,然后需要在php中读取它时。下面的代码对我有用。

json_decode( html_entity_decode( stripslashes ($jsonString ) ) );

感谢@Thisguyhastwothumbs


答案 2

使用 JSON 字符串化时,请先使用html_entity_decode,然后再json_decode。

$tempData = html_entity_decode($tempData);
$cleanData = json_decode($tempData);