如何使用jQuery解析JSON

时间:2012-08-02 16:00:29

标签: javascript json jquery jquery-mobile

我是JSON和jQuery的新手。我有一个来自网址的JSON文件,格式为:

{
    "united":[
        {"Atlanta","California","Alabama"}
    ]

    "canada":[
        {"Ontario","British Columbia"},
    ]
}

我想要做的是当用户从列表中选择一个国家/地区时,我只想解析一个特定于该国家/地区的数组。

到目前为止我所拥有的是:

function getUrl(country) {
    alert(urlBase + countrylist);
    $.getJSON(urlBase + countrylist, function(data){
       $.each(data, function (index, value) {
           alert(value);
       });
    });
}

没有触发值警报,所以它似乎没有进入每个语句。

1 个答案:

答案 0 :(得分:2)

您的JSON似乎无效。我认为JSON的理想输出是:

{
    "united":[
        "Atlanta","California","Alabama"
    ], //this comma is new

    "canada":[
        "Ontario","British Columbia" //a comma was removed from here
    ]
}

以下是使用此结构的演示:http://jsfiddle.net/9sU65/(观察您的控制台以确定其有效)

注意我删除了方括号内的花括号。现在,这将创建一个格式正确的城市阵列。另请注意,必须在对象的第一个和第二个键之间放置逗号。

正确的对象表示法采用以下格式:

{ key1 : 'val-1', key2 : 'val-2' }

如果你有:

{ key1 , key2 }

然后你真的只想创建一个使用略有不同的符号的数组:

[ key1 , key2 ]

BTW,这是我在使用你的JSON时遇到的错误(在Chrome 20中):

Uncaught SyntaxError: Unexpected token , 

有很多,但你总能找到一个JSON验证器,看看JSON是否有效。无论输出采用何种格式,每当我使用新的数据Feed时,我都会这样做。这是一个很好的JSON验证器示例:http://jsonformatter.curiousconcept.com/