Ваш пример и профессор являются недопустимыми JSON, которые не могут быть проанализированы, потому что оба содержат свойство "description", которое не имеет значения:
... "description":"url":"www.sd.com" ...
Должно быть:
... "description": "somevalue", "url":"www.sd.com" ...
(или просто удалить "description":
)
В остальной части моего ответа предполагается, что вышеизложенное можно исправить, прежде чем продолжить ...
Вы не объясняете, как вы получаете JSON вашего профессора или как вы генерируете свой вывод, но в общем смысле JSON - это строковое представление объекта или массива, которое вы затем анализируете создать реальный объект или массив. Ваш пример - это представление объекта. Пример вашего профессора - представление массива объектов.
Если вы ошибаетесь, вы, похоже, пытаетесь обработать professorResponse
как массив и получить доступ к его элементу 0 с помощью professorResponse[0]
до того, как проанализируете его, но если это JSON затем это строка, представляющая массив, а не фактический массив, поэтому вам нужно сначала проанализировать его:
// get professorResponse from server somehow
var professorResponse = '[{"id":"1234", "name":"some description","description":"fixed","url":"www.sd.com"}, {same format as previous one}]';
var parsedResponse = YAHOO.lang.JSON.parse(professorResponse);
// now parsedResponse is an array of objects, so
parsedResponse.length // is 2 - there are two elements
parsedResponse[0] // is first element, i.e., {"id":"1234", "name":"some description","description":"url":"www.sd.com"}
parsedResponse[1] // is second element
parsedResponse[0].id // is "1234"
parsedResponse[0].name // is "some description"
Примечание: в вашем примере вы инициализируете messages
для ссылки на пустой массив, но затем немедленно присваиваете ему значение, равное возвращаемому из YAHOO.lang.JSON.parse(jsonString)
, который в этом случае не будет массивом ( потому что ваша jsonString представляет объект, который не является массивом) - ваш исходный пустой массив выбрасывается.
«что делать с чем-то, переданным с веб-сервера, с точки зрения того, как отформатировать данные, чтобы я мог их проанализировать».
Если веб-сервер возвращает действительный JSON, вам не нужно форматировать его для его анализа - это уже будет строка в формате, который можно проанализировать с помощью JSON.parse()
.