Javascript json_decode期望参数1是字符串,表示数组已给定。为什么';我的绳子不能正常通过吗?
所以,我整个周末都在努力解决这个问题,但我仍然不知道到底出了什么问题。我试图通过Javascript json_decode期望参数1是字符串,表示数组已给定。为什么';我的绳子不能正常通过吗?,javascript,php,json,ajax,Javascript,Php,Json,Ajax,所以,我整个周末都在努力解决这个问题,但我仍然不知道到底出了什么问题。我试图通过json\u decode传递一些数据,以便能够将其保存到一个文件中,我不断得到一个错误,它需要一个字符串,但给出了一个数组。我正在使用jQuery和PHP 根据console.log(noBrack),我通过ajax调用发送的数据是: 我的Ajax调用是: $.ajax({ url: 'quickGrade.php', type: 'POST', data: noBrack, datatype: '
json\u decode
传递一些数据,以便能够将其保存到一个文件中,我不断得到一个错误,它需要一个字符串,但给出了一个数组。我正在使用jQuery和PHP
根据console.log(noBrack)
,我通过ajax调用发送的数据是:
我的Ajax调用是:
$.ajax({
url: 'quickGrade.php',
type: 'POST',
data: noBrack,
datatype: 'json',
success:function(data){
alert(data );
}
});
我的PHP代码是:
$testSave = 'data/gradeTest.json';
$decode = json_decode($_POST, true);
file_put_contents($testSave, $decode);
有人能找出我做错了什么吗?我已经用一个在线json_解码测试仪测试了我的字符串,它说它是有效的,所以我被困在这里了 您发送数据的方式将在php代码中为您提供$\u POST数组。因此,实际上您不需要解码,因为数据是作为$u POST数组而不是JSON字符串来的。您应该使用
JSON\u encode
将JSON字符串存储在文件中。因为$\u POST是一个数组,所以不能像Json字符串一样对其进行解码
您的代码将变为:
$testSave = 'data/gradeTest.json';
file_put_contents($testSave, json_encode($_POST));
您可以阅读更多关于:
noBrack
字符串还是json
?您正在尝试用json解码$\u Post,它是一个数组。尝试访问该数组中所需的元素,如$_POST['your key'],那么我如何将其正确地放入文件中呢?如果我尝试放置文件内容($testSave,$\u POST);它返回一个空文件。@BlackRose00101这样做:$decode=json\u encode($\u POST)代码>请您尝试一下,您会得到您想要的。这将返回它为{”-整个数组-“:”“},这应该发生吗?我不知道如何在我的代码的其他部分正确地处理它。你能告诉我你想要实现什么吗?为什么要将json存储到文件中?我已经尝试过了,但它返回的是{“-整个数组-”:“”}。是否有一些函数可以快速将其格式化为正确的json,或者我是否需要找到其他解决方法?
$testSave = 'data/gradeTest.json';
file_put_contents($testSave, json_encode($_POST));