Javascript ajax JSON调用返回字符串数组而不是对象

Javascript ajax JSON调用返回字符串数组而不是对象,javascript,php,jquery,json,ajax,Javascript,Php,Jquery,Json,Ajax,当我调用ajax时,我正在解析json_编码的数据,当我将数据记录到控制台时,它实际上是一个字符串数组,而不是对象数组。它正在展示这个 [ "{" todoText":"dgdgdfgdfgdf", "completed":false, "editable":false }", "{ "todoText":"test 2", "completed":false, "editable":false }", "{ "todoText":"test 3", "completed"

当我调用ajax时,我正在解析json_编码的数据,当我将数据记录到控制台时,它实际上是一个字符串数组,而不是对象数组。它正在展示这个

[  
"{"   todoText":"dgdgdfgdfgdf",
"completed":false,
"editable":false
 }",

"{  
"todoText":"test 2",
"completed":false,
"editable":false
}",

"{  
"todoText":"test 3",
"completed":false,
"editable":false
}", 

"{  
"todoText":"sdfsdf",
"completed":false,
"editable":false
}"
]
这是我用来调用以检索数据的代码

$(document).ready(function() {


$.get("php/listtasks.php", function(data){

var parsed = JSON.parse(data);


  $('#directions').html(parsed[0]);

  console.log(parsed);
})

});
这是我用来编码数据并将其回显到javascript的php代码

$query  = "SELECT * FROM list";
$result = $conn->query($query);
if (!$result) die ("Database access failed: " . $conn->error);

$rows = $result->num_rows;


for ($j = 0 ; $j < $rows ; ++$j)
{
$result->data_seek($j);
$row = $result->fetch_array(MYSQLI_NUM);


$x[$j] = $row[2];


}

echo json_encode($x);
$query=“从列表中选择*”;
$result=$conn->query($query);
如果(!$result)死亡(“数据库访问失败:.$conn->错误”);
$rows=$result->num_行;
对于($j=0;$j<$rows;++$j)
{
$result->data\u seek($j);
$row=$result->fetch_数组(MYSQLI_NUM);
$x[$j]=$row[2];
}
echo json_编码($x);

显然,您的
$row[2]
是一个JSON对象,因此您需要像这样对其进行解码:

$x[$j] = json_decode($row[2]);

我希望这会对您有所帮助。

显然,您的
$row[2]
是一个JSON对象,因此您需要像这样对其进行解码:

$x[$j] = json_decode($row[2]);
我希望这会对您有所帮助。

替换

$x[$j] = $row[2];

替换

$x[$j] = $row[2];


您是否尝试过:将php中的mimetype设置为json?和/或
console.log(data)
before/without
JSON.parse
?@Jeff输出几乎相同的东西,只是现在它在我的整个过程中都有向前的斜杠。你试过了吗:在php中将mimetype设置为JSON?和/或
console.log(data)
before/without
JSON.parse
?@Jeff输出几乎相同的东西,只是现在它在整个itt中都有向前的斜杠。谢谢,这很有效!我只是想知道你能否解释一下发生了什么事。因此,首先我用javascript字符串化了一个对象,并发送了一个ajax请求将其发送到服务器端,然后将其插入mysql表中的一行。为什么我必须对该行进行解码才能将其重新编码以发送回?
$row[2]
是一个字段,而不是行,并作为字符串(字符串化对象)存储。我需要看看你的代码,以便提供详细的解释!非常感谢,这很有效!我只是想知道你能否解释一下发生了什么事。因此,首先我用javascript字符串化了一个对象,并发送了一个ajax请求将其发送到服务器端,然后将其插入mysql表中的一行。为什么我必须对该行进行解码才能将其重新编码以发送回?
$row[2]
是一个字段,而不是行,并作为字符串(字符串化对象)存储。我需要看看你的代码,以便提供详细的解释!