我從PHP檢索JSON:JSON對象輸出不對
<?php
require("includes/connection.php");
//$queryString = "home";
$returnArray = array();
if (!$server)
{
die('Connect Error (' . mysqli_connect_errno() . ')' . mysqli_connect_error());
}
$query = "SELECT *
FROM stuff
WHERE name LIKE '%" . $queryString . "%'
ORDER BY name LIMIT 1";
if($result = $server->query($query))
{
while ($row = $result->fetch_assoc())
{
array_push($returnArray, $row);
}
}
echo json_encode($returnArray);
?>
和Javascript:
var home = "home";
$.getJSON("db/getJSON.php", {queryString: ""+home+""},
function(data){
jsn = JSON.stringify(data);
$("#outputtester").html(jsn);
consoleOut("JSON: "+jsn);
});
它輸出相當不錯的字符串:
[{"UID":"1","IDS":"1,2,3","name":"home","type":"thing","cat_id":"home"}]
但我認爲這兩個[]
不應該在那裏,因爲它不是數組的數組?
我試圖把回聲 「的東西:」。在json_encode之前,所以我可以識別數組的數組。但它不會工作
我試圖訪問「數據」不字符串化,作爲一個對象,它應該是這樣的工作:
data.UID
或
data.name
,但我得到一個對象的對象輸出每一次,也當我字符串化他們..
任何想法,我做錯了嗎?
無法找到一大堆的信息對從JSON數組時,所有的東西我手動查找使JSON在JavaScript代碼..
'$ returnArray'是數組的數組,所以結果似乎是細。 '$ returnArray'是一個數組。每個'$ row'都是一個數組。您正在將'$ row'添加到'$ returnArray' - >數組數組。當然,如果你的查詢只返回一個表格行,那麼你最終會得到一個只包含一個數組的數組。也許你想把'$ row'分配給'$ returnArray'。 – 2012-02-22 17:39:56
1)代碼是SQL注入攻擊敞開的,2)即JSON輸出是正確的,則是編碼數據的行的陣列JSON其中的行是「對象」。這裏沒有問題(除了查詢代碼)。 – Chad 2012-02-22 17:42:12