2010-11-15 39 views
0

工作这是在我身边一个非常简单的错误,感谢所有谁回答。用JSON文件和Javascript

+0

样品JSON文件将是有益的 – sunn0 2010-11-15 10:25:41

+0

提供一个JSON包的例子有一个结果,而另一个有不止一个结果。 – 2010-11-15 10:25:52

+0

感谢太阳和马塞洛,我已经更新了我的原始帖子。 – user508096 2010-11-15 10:59:19

回答

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

....为什么这是upvoted?它不在*全部*在这里回答任何问题。 – 2010-11-15 10:30:21

+0

我不确定,我还没有能力提出问题。 – user508096 2010-11-15 11:00:26

0

但是,如果返回多于1个结果Artists.id;将返回“未定义”。所以我需要将其更改为:Artists.id [0];

这不可能是Artists.id应该是“对象”不未定义如果Artists.id [0]存在。也许这是说明艺术家[0] .id?如果这样你就可以测试的typeof(艺术家)== typeof运算([])