我是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);
});
});
}
没有触发值警报,所以它似乎没有进入每个语句。
答案 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/