gpt4 book ai didi

php - 来自 Javascript 的 JSON 未在 PHP 中解码

转载 作者:行者123 更新时间:2023-11-30 18:49:30 25 4
gpt4 key购买 nike

我一直在尝试从一页上的 Javascript 获取一些数据以异步发布到 php 文件。我什至没有尝试对数据做任何事情,只是一个 var_dump 从 ajax 调用中吐出。 NULL 一遍又一遍。

我已经用 JSONLint 检查了 JSON,它验证得很好。我正在从 JSON.stringify 获取我的 JSON - Firebug 告诉我我正在获取以下内容:

{"items":[["sa1074","1060"],["sa1075","1061"]]}

我已经尝试过 php://input,以及 PHP 手册中关于该函数的注释中的 json_decode_nice,并且我已经尝试过使用 utf8_encode - 我的 JSON 有问题吗?

编辑:Derpity dee 可能应该多计划一下这篇文章哈哈。这是我的 PHP(使用 PHP 手册注释中的建议)

function json_decode_nice($json, $assoc = FALSE){
$json = str_replace(array("\n","\r"),"",$json);
$json = preg_replace('/([{,])(\s*)([^"]+?)\s*:/','$1"$3":',$json);
return json_decode($json,$assoc);
}
if (isset($_POST['build'])){
$kit = file_get_contents('php://input');
var_dump(json_decode_nice($kit));
}

以及用于创建它的 JS:

        var jsonKit = JSON.stringify(kit);
$.post("kits.php?", {"build" : jsonKit},
function(data) {
$("#kitItems").html(data);
});

此外:我们的主机使用的是 PHP 5.2 - 我在上传一个非常好的 redbean 类时发现了这一点,结果它爆炸了。不得不用遗留的redbean重新实现。我们的主机被破坏了。

已解决:感谢所有发表评论的人。没有想过检查 $_POST 看看有什么进来。引号在 $_POST 中用斜杠转义,json_decode 被它窒息了。在解码之前添加这一行解决了这个问题。还忘记设置 true 以返回关联数组。谢谢!

$kit = str_replace('\\', '', $kit);

最佳答案

在没有看到代码的情况下 - 我只是在猜测...您是否在 json_decode() 中使用了 true assoc 变量? ?

<?php json_decode($jsonString, true); ?>

在我第一次尝试解码某些东西时,这让我在解码上难住了很长一段时间,

关于php - 来自 Javascript 的 JSON 未在 PHP 中解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4403394/

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