Нужна помощь с JSON и JQuery - PullRequest
1 голос
/ 14 мая 2011

Я не могу понять json по любой причине, я не понимаю, почему я не могу заставить это работать.

мой json возвращается:

{"lists":[{"item":"1","count":"5"}]}
{"lists":[{"item":"1","count":"5"}]}
{"lists":[{"item":"1","count":"5"}]}
{"lists":[{"item":"1","count":"5"}]}
{"lists":[{"item":"1","count":"5"}]}

и т. Д., И т. Д., И т. Д.

сейчас я пытаюсь получить его, используя:

$.getJSON("lists.php",
  {id: aid},function(data){
  $.each(data.lists, function(i, info) {
      $('.container').append(info.item+info.count);
  });
});

, но я не получаю никаких данных здесь.Кто-нибудь может указать мне правильное направление?

});

Ответы [ 3 ]

4 голосов
/ 14 мая 2011

Вам необходимо вернуть данные следующим образом:

{
  "lists":[
    {"item":"1","count":"5"},
    {"item":"1","count":"5"},
    {"item":"1","count":"5"},
    {"item":"1","count":"5"},
    {"item":"1","count":"5"}
  ]
}

На вашем php сделайте следующее:

echo "{\"lists\":[";
foreach ($lists as $obj) {
  echo "{\"item\": \"" . $obj->item . "\", ";
  echo "\"count\": \"" . $obj->count . "\"},";
}
echo "]}\n";

Надеюсь, это поможет!

3 голосов
/ 14 мая 2011

Похоже, вы привыкли к тому, как закодированы параметры URL.JSON работает по-другому.

Если вы хотите, чтобы ваш объект содержал ключ lists, который содержит массив, вы должны вернуть JSON следующим образом:

{
  "lists": [
    {"item":"1","count":"5"},
    {"item":"1","count":"5"},
    {"item":"1","count":"5"},
    {"item":"1","count":"5"},
    {"item":"1","count":"5"}
  ]
}
1 голос
/ 14 мая 2011

Выше недопустимо JSON.Я полагаю, что это синтаксис, который вы ищете, который будет описан как «объект со свойством списка, содержащим массив элементов»:

{"lists":[{"item":"1","count":"5"},{"item":"1","count":"5"},{"item":"1","count":"5",{"item":"1","count":"5"},{"lists":[{"item":"1","count":"5"}]}

Возможно, вам нужно настроить свой внутренний код, чтобы он добавлялсяновый член массива списков, а не совершенно новые списки каждый раз.

...