Я получаю JSON из php:
<?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);
?>
И джаваскрипт:
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
or
data.name
но я каждый раз получаю вывод объекта Object, а также когда я их упорядочиваю.
Любая идея, что я делаю неправильно?
Не могу найти целую кучу информации о работе с массивами JSON, все, что я нахожу, вручную создает JSON в коде javascript.
$returnArray
- это массив массивов, поэтому результат кажется хорошим.$returnArray
- это массив. Каждый$row
представляет собой массив. Вы добавляете$row
в$returnArray
-> массив массивов. Конечно, если ваш запрос возвращает только одну строку таблицы, вы получите массив, содержащий только один массив. Возможно, вместо этого вы захотите назначить$row
на$returnArray
. - person Felix Kling   schedule 22.02.2012