2010-11-15 1 views
0

Это была очень простая ошибка на моей стороне, спасибо всем, кто ответил.Работа с файлом JSON и Javascript

+0

Пример файла JSON был бы полезным – sunn0

+0

Приведите пример пакета JSON с одним результатом, а другой с несколькими результатами. –

+0

Спасибо ВС и Марсело, я обновил свой оригинальный пост. – user508096

ответ

1

Вы должны получить доступ к первым артистом, прежде чем схватить id (так как это массив), как это:

var artisttype = Artists[0].id; 

Было бы лучше, если бы вы могли изменить JSON к всегда возвращает массив, даже с одним результатом ... к сожалению, некоторые платформы этого не делают по причинам, не зависящим от моего понимания.

0

Вы правы, что это проблематично, и, честно говоря, это звучит как «другой конец», который посылает вам JSON, является непоследовательным.

Проблема заключается в том, что, когда есть несколько элементов, они посылают вам массив для id собственности, и когда есть один пункт, они просто послать вам простое значение (например, целое число). В идеале, когда есть один элемент, вам следует отправить массив с одним элементом - это позволит вам использовать один и тот же массив синтаксического анализа каждый раз.

Если вы не можете убедить их изменить то, что они вас посылают, то лучшим решением будет просто сделать то, что вы сейчас делаете; см., если определено Artists.id, используйте его, если да, еще вернитесь к доступу к id в виде массива.

1
for(var propertyname in responseData){ 
     //will loop through the different elements in your json array 
     alert(responseData[propertyName]); //will output the valueof each element 
} 
+0

.... почему это было поддержано? Он не отвечает на все вопросы здесь. –

+0

Я не уверен, у меня нет возможности еще раз поднять вопрос. – user508096

0

Однако если получено более 1 результата Artists.id; вернется «undefined». Поэтому мне нужно изменить его на это: Artists.id [0];

это не может быть Artists.id должен быть «объектом» не неопределенным, если существует Artists.id [0]. Может быть, это как заявленные художники [0] .id? и если это так, вы можете протестировать typeof (Artists) == typeof ([])