Это правильная структура данных JSON? - PullRequest
1 голос
/ 23 января 2010

Я преобразовал массив результатов php в json. Теперь я хочу знать, это в правильном формате JSON. Мой код echo json_encode($row); Я должен использовать его с плагином JQuery Auto Complete ...

{"0":"1","id":"1","1":"Albania","country":"Albania"} 
{"0":"2","id":"2","1":"Algeria","country":"Algeria`"}
{"0":"3","id":"3","1":"Angola","country":"Angola"}
{"0":"4","id":"4","1":"Anguilla","country":"Anguilla"}
{"0":"5","id":"5","1":"Antigua","country":"Antigua"}
{"0":"6","id":"6","1":"Argentina","country":"Argentina"}
{"0":"7","id":"7","1":"Armenia","country":"Armenia"}
{"0":"8","id":"8","1":"Aruba","country":"Aruba"}
{"0":"9","id":"9","1":"Australia","country":"Australia"}
{"0":"10","id":"10","1":"Austria","country":"Austria"}
{"0":"11","id":"11","1":"Azerbaijan","country":"Azerbaijan"}
0":"26","id":"26","1":"Bulgaria","country":"Bulgaria"}
{"0":"27","id":"27","1":"Burkina Faso","country":"Burkina Faso"}

Ответы [ 4 ]

7 голосов
/ 23 января 2010

Каждый объект нужно обернуть в [] и нужно comma между ними, как сказал другой,

И объект, который содержит Болгария , разбивается вот так

0":"26","id":"26","1":"Bulgaria","country":"Bulgaria"}

должно быть

{"0":"26","id":"26","1":"Bulgaria","country":"Bulgaria"}

Правильно было бы как

[{"0":"1","id":"1","1":"Albania","country":"Albania"},
{"0":"2","id":"2","1":"Algeria","country":"Algeria`"},
{"0":"3","id":"3","1":"Angola","country":"Angola"},
{"0":"4","id":"4","1":"Anguilla","country":"Anguilla"},
{"0":"5","id":"5","1":"Antigua","country":"Antigua"},
{"0":"6","id":"6","1":"Argentina","country":"Argentina"},
{"0":"7","id":"7","1":"Armenia","country":"Armenia"},
{"0":"8","id":"8","1":"Aruba","country":"Aruba"},
{"0":"9","id":"9","1":"Australia","country":"Australia"},
{"0":"10","id":"10","1":"Austria","country":"Austria"},
{"0":"11","id":"11","1":"Azerbaijan","country":"Azerbaijan"},
{"0":"26","id":"26","1":"Bulgaria","country":"Bulgaria"},
{"0":"27","id":"27","1":"Burkina Faso","country":"Burkina Faso"}]
2 голосов
/ 23 января 2010

Взято из Руководства PHP .

Истинный объект json будет заключен в {}, а массив json будет упакован, как говорит Игнасио в [].

Кроме того, вы можете использовать параметры в json_encode для принудительного форматирования. Проверьте ваш плагин, чтобы увидеть, если он определяет, в каком формате они хотят его.

Редактировать

После более тщательного изучения вашего объекта вы, вероятно, захотите сделать каждую строку в массив, а затем json_encode для этого массива.

$json = array();
while($row = mysql_fetch_array($query)){
   $json[] = $row;
}

echo json_encode($json);

Сейчас похоже, что вы выводите разные объекты json для каждой строки.

1 голос
/ 23 января 2010

Неа. Объекты должны быть в верхнем контейнере, например [{...},{...},...].

0 голосов
/ 18 февраля 2011

Отличный ресурс для проверки JSON: http://www.jsonlint.com/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...