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

时间:2016-07-19 23:38:34

标签: javascript php jquery json ajax

当我执行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);

2 个答案:

答案 0 :(得分:2)

显然,您的$row[2]是一个JSON对象,所以您需要像这样解码它:

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

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

答案 1 :(得分:0)

替换

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

使用

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