gpt4 book ai didi

php - JSON 编码/解码无法正常工作

转载 作者:行者123 更新时间:2023-12-04 21:05:48 27 4
gpt4 key购买 nike

我正在准备 JSON 字符串并将其从我的 PHP 文件发送到我的 Javascript 函数,如下所示:

$json = array();
$json['slice'] = false;
$json['G500'] = false;
$json['KG1'] = false;

$encoded = json_encode($json);
die($encoded);

但是,在我的 JS 函数中,如果我这样做,它无法解码 JSON 对象:

var d = req.responseText;                                           
var jsonObject = eval(d);

唯一的方法是手动添加括号eval JSON 对象

jsonObject = eval("("+ d + ")");

我也遇到了同样的问题。将 JSON 对象发送到 PHP 并尝试在那里对其进行解码失败。我相信我需要在尝试解码之前删除我的 PHP 脚本中的括号。

为什么会这样?我可以做些什么来解决这种不兼容问题吗?

编辑:

如果我使用 JSON.parse,PHP 到 JS 现在可以工作了。相反,我仍然遇到麻烦。

这就是我将数据发送到 PHP 的方式:

var JSONstring = 
{
"Product": document.getElementById('item').value,
"Size": document.getElementById('size').value,
"Quantity": document.getElementById('quantity').value
};

url = "maintainOrder.php?json=" + JSON.stringify(JSONstring);

req.open("GET", url, true);

但是,PHP 脚本无法对其进行解码。

$newItem = json_decode($_GET['json']);

array_push($_SESSION['order'],$newItem);

最佳答案

你的Javascript

eval 前导 { 字符有问题,because of an ambiguity with block scope .

使用括号强制将输入解析为表达式是一种解决方案,但您应该完全避免使用 evaluse a proper JSON decoding function .


你的 PHP

我们需要查看您发送给 PHP 脚本的数据,以了解它无法解析的原因。一般来说,只要JSONLint接受您的 JSON,PHP 的 json_decode 也将如此。所以试一试吧。

关于php - JSON 编码/解码无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7911044/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com