JSON对象输出不对

时间:2012-02-22 17:37:36

标签: jquery json stringify

我从php中检索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

但是我每次都得到一个对象Object输出,当我对它们进行字符串化时也是如此..

知道我做错了吗?

无法找到有关使用JSON数组的大量信息,我发现手动在javascript代码中生成JSON的所有内容......

1 个答案:

答案 0 :(得分:1)

更改:

echo json_encode($returnArray);

要:

if($returnArray) {
    echo json_encode($returnArray[0]);
} else{
    // here echo whatever you want to signify there were no results.
}