Отображение словаря в объекте Javascript - PullRequest
0 голосов
/ 16 января 2011

Я возвращаю этот ответ с моего сервера:

callback({"City": "Miami", "State": "FL", "Street": "9th Street", "Name": "Big 12", "Zip": "65201", "Lat": -48.219999999999999, "Telephone": "5732168906", "Long": 32.0, "Events": "[{\"End Time\": \"2011-01-22 23:36:31\", \"Name\": \"Margaritas\", \"Start Time\": \"2011-01-22 15:36:31\"}, {\"End Time\": \"2011-01-22 19:36:39\", \"Name\": \"Dollar Bottles\", \"Start Time\": \"2011-01-22 15:36:39\"}, {\"End Time\": \"2011-01-23 23:36:31\", \"Name\": \"All You Can Drink\", \"Start Time\": \"2011-01-23 15:36:31\"}]"})

Здесь я пытаюсь проанализировать ответ и отобразить его в моем "сегодняшнем списке".С data.Events я получаю весь массив словарей, отображаемых на экране.

function callback(data){
    console.log(data);
    $("#tonight-list").append("<li role='option' tabindex='0' class='ui-li ui-li-static ui-btn-up-c'>Starts:" + 
    data.Events  + 
    "<li>");

Однако я не могу понять, как получить доступ к каждому элементу (Время начала, Время окончания, Имя и т. Д.).Когда я пытаюсь data.Events [0] , он дает мне только первый символ из data.Events .

Как получить доступ к каждому ключу словаря в массиве событий?Я просто не могу понять синтаксис - было бы хорошо, если бы я мог видеть все опции для этого типа объекта.Заранее спасибо за помощь!

Ответы [ 2 ]

1 голос
/ 16 января 2011

Сделайте Events в ответе JSON реальным массивом вместо строки , тогда вы можете использовать его так:

var obj = JSON.parse(reponseText);
var event = obj.Events[0];
alert(event["End Time"]); // hurray

JSON-ответ

callback({
  "City": "Miami",
  "State": "FL",
  "Street": "9th Street",
  "Name": "Big 12",
  "Zip": "65201",
  "Lat": -48.219999999999999,
  "Telephone": "5732168906",
  "Long": 32.0,
  "Events": [{
    "End Time": "2011-01-22 23:36:31",
    "Name": "Margaritas",
    "Start Time": "2011-01-22 15:36:31"
  },
  {
    "End Time": "2011-01-22 19:36:39",
    "Name": "Dollar Bottles",
    "Start Time": "2011-01-22 15:36:39"
  },
  {
    "End Time": "2011-01-23 23:36:31",
    "Name": "All You Can Drink",
    "Start Time": "2011-01-23 15:36:31"
  }]
})​;
1 голос
/ 16 января 2011

JSON чувак!просто верните действительный JSON с вашего сервера и используйте evalJSON.Затем вы можете получить доступ к каждому объекту через соответствующие им ключи.

edit:

в основном делать,

data.responseText.evalJSON ();

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