Это была очень простая ошибка на моей стороне, спасибо всем, кто ответил.Работа с файлом JSON и Javascript
ответ
Вы должны получить доступ к первым артистом, прежде чем схватить id
(так как это массив), как это:
var artisttype = Artists[0].id;
Было бы лучше, если бы вы могли изменить JSON к всегда возвращает массив, даже с одним результатом ... к сожалению, некоторые платформы этого не делают по причинам, не зависящим от моего понимания.
Вы правы, что это проблематично, и, честно говоря, это звучит как «другой конец», который посылает вам JSON, является непоследовательным.
Проблема заключается в том, что, когда есть несколько элементов, они посылают вам массив для id
собственности, и когда есть один пункт, они просто послать вам простое значение (например, целое число). В идеале, когда есть один элемент, вам следует отправить массив с одним элементом - это позволит вам использовать один и тот же массив синтаксического анализа каждый раз.
Если вы не можете убедить их изменить то, что они вас посылают, то лучшим решением будет просто сделать то, что вы сейчас делаете; см., если определено Artists.id
, используйте его, если да, еще вернитесь к доступу к id
в виде массива.
for(var propertyname in responseData){
//will loop through the different elements in your json array
alert(responseData[propertyName]); //will output the valueof each element
}
.... почему это было поддержано? Он не отвечает на все вопросы здесь. –
Я не уверен, у меня нет возможности еще раз поднять вопрос. – user508096
Однако если получено более 1 результата Artists.id; вернется «undefined». Поэтому мне нужно изменить его на это: Artists.id [0];
это не может быть Artists.id должен быть «объектом» не неопределенным, если существует Artists.id [0]. Может быть, это как заявленные художники [0] .id? и если это так, вы можете протестировать typeof (Artists) == typeof ([])
Пример файла JSON был бы полезным – sunn0
Приведите пример пакета JSON с одним результатом, а другой с несколькими результатами. –
Спасибо ВС и Марсело, я обновил свой оригинальный пост. – user508096