Работа с файлом JSON и Javascript - PullRequest
0 голосов
/ 15 ноября 2010

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

Ответы [ 4 ]

1 голос
/ 15 ноября 2010
 for(var propertyname in responseData){
       //will loop through the different elements in your json array
      alert(responseData[propertyName]); //will output the valueof each element
}
1 голос
/ 15 ноября 2010

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

var artisttype = Artists[0].id;

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

0 голосов
/ 15 ноября 2010

Однако, если возвращается более 1 результата Artists.id;вернет "неопределенный".Поэтому мне нужно изменить это на следующее: Artists.id [0];

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

0 голосов
/ 15 ноября 2010

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

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

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

...