使用Jquery问题解析JSON对象

时间:2011-05-02 11:37:20

标签: javascript jquery json

您好我正试图用Jquery解析下面的json,到目前为止我可以从结果中得到所有内容,除了性能标签的一个关键信息之外。

每个json结果都包含在一个事件标记中,然后在其中包含时间和日期等信息,格式如下

"location": {
                "lng": -0.1187418,
                "city": "London, UK",
                "lat": 51.4681089
            },
            "start": {
                "time": "19:30:00",
                "datetime":"2010-02-16T19:30:00+0000",
                "date": "2010-02-16"
            },

我设法循环遍历并将其解析为html。但是,有一组“性能”标签的格式不同。

"performance": [{
                {
                    "artist": {
                         "uri": "http://www.songkick.com/artists/288696-vampire-weekend",
                         "displayName": "Vampire Weekend",
                         "id": 288696,
                         "identifier": [{"mbid": "af37c51c-0790-4a29-b995-456f98a6b8c9"}]
                    }
                    "displayName": "Vampire Weekend",
                    "billingIndex": 1,
                    "id": 5380281,
                    "billing": "headline"
                }
            }],

现在在我的for循环中,我正在运行以下代码,该代码在控制台中显示性能信息。

var events = data.resultsPage.results.event;
for (var i = 0, l = events.length; i < l; i++) {

console.log(events[i].performance); }

然而,当我尝试进入结构时,就像我已经使用其他元素一样,我得到了返回未定义,即

console.log(events[i].performance.displayName);

我是否必须以不同的方式执行此操作,因为在Json的性能标记中使用了[]括号?

提前致谢

2 个答案:

答案 0 :(得分:0)

假设您发布的内容与您的JSON不完全相同(因为发布的内容有语法错误),“performance”属性是一个对象数组。因此,要获得“displayName”,您需要知道所需“性能”数组的哪个元素。然后,您可以通过索引访问它。

console.log(events[i].performance[j].displayName);

(假设您使用变量“j”循环“performance”数组。)

答案 1 :(得分:0)

尝试验证返回的JSON对象here,我猜JSON输出存在一些问题。