我试图从外部文件(list.json)获得json内容,但所有尝试都失败了。我已经原型我的代码在Jsfiddle (http://jsfiddle.net/ctmvcyy1/)。
我认为解决办法很简单,但我肯定是做错了什么。
谢谢你的帮助!
var json = {
"lojas": [
{
"cidade": "New York",
"uf": "RS",
"unidades": [
{
"nome": "Tribeca",
"logradouro": "Rua Ligula Amet, 30",
},
{
"nome": "Brooklyn",
"logradouro": "Av. Venenatis Dapibus, 200",
}
]
},
{
"cidade": "São Paulo",
"uf": "SP",
"unidades": [
{
"nome": "Centro",
"logradouro": "Av. Purus Fusce, 1003",
}
]
},
{
"cidade": "Rio de Janeiro",
"uf": "RJ",
"unidades": [
{
"nome": "Copacabana",
"logradouro": "Rua Malesuada, 120",
}
]
}
]
};
$.each(json.lojas, function (i, lojas) {
var siglas = '<li><a href="#' + lojas.uf + '">' + lojas.cidade + '</a></li>';
var cidades = '<ul id="' + lojas.uf + '"class="cidades">';
$.each(lojas.unidades, function (i, unidades) {
cidades += '<li><p>'+ unidades.nome + '</p><p>' + unidades.logradouro + '</p></li>';
});
cidades += '</ul>';
$(siglas).appendTo('#lista-siglas');
$(cidades).appendTo('#lista-cidades');
});
工作柱塞:http://plnkr.co/edit/d23lntczvQZMEfOXRPqW?p=preview
只是做:
$.getJSON("lojas.json", function (json){
$.each(json.lojas, function (i, lojas) {
var siglas = '<li><a href="#' + lojas.uf + '">' + lojas.cidade + '</a></li>';
var cidades = '<ul id="' + lojas.uf + '"class="cidades">';
$.each(lojas.unidades, function (i, unidades) {
cidades += '<li><p>'+ unidades.nome + '</p><p>' + unidades.logradouro + '</p></li>';
});
cidades += '</ul>';
$(siglas).appendTo('#lista-siglas');
$(cidades).appendTo('#lista-cidades');
});
});
请注意,为了使其工作,您需要从json中删除多余的逗号。所以lojas。Json看起来像:
{
"lojas": [
{
"cidade": "New York",
"uf": "RS",
"unidades": [
{
"nome": "Tribeca",
"logradouro": "Rua Ligula Amet, 30"
},
{
"nome": "Brooklyn",
"logradouro": "Av. Venenatis Dapibus, 200"
}
]
},
{
"cidade": "São Paulo",
"uf": "SP",
"unidades": [
{
"nome": "Centro",
"logradouro": "Av. Purus Fusce, 1003"
}
]
},
{
"cidade": "Rio de Janeiro",
"uf": "RJ",
"unidades": [
{
"nome": "Copacabana",
"logradouro": "Rua Malesuada, 120"
}
]
}
]
}