0

我对 JSON 和 jQuery 很陌生。我有一个来自 url 的 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);
       });
    });
}

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

4

1 回答 1

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 ]

顺便说一句,这是我在使用 JSON 时遇到的错误(在 Chrome 20 中):

Uncaught SyntaxError: Unexpected token , 

那里有很多,但您总是可以找到 JSON 验证器并查看 JSON 是否有效。每当我使用新的数据馈送时,我都会这样做,无论输出是什么格式。这是一个好的 JSON 验证器的示例:http: //jsonformatter.curiousconcept.com/

于 2012-08-02T19:33:51.317 回答