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));