我从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