当我执行ajax调用时,我正在解析json_encoded数据,当我将数据记录到控制台时,它实际上是一个字符串数组而不是对象。它显示了这一点。
[
"{" 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);
})
});
这是我用来编码数据的PHP代码,并将其回送给javascript。
$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);
答案 0 :(得分:2)
显然,您的$row[2]
是一个JSON对象,所以您需要像这样解码它:
$x[$j] = json_decode($row[2]);
我希望这会对你有所帮助。
答案 1 :(得分:0)
替换
$x[$j] = $row[2];
使用
$x[$j] = json_decode($row[2]);