jquery json解析
问题描述:
我有一个4层的地图,每层有各种商店的标记。我需要做的是这个。jquery json解析
- 用户从选择
- 脚本争夺店铺名称选择店铺,然后找到正确的数据从JSON那家商店。
我对脚本应该如何看,但不知道如何正确编写它有一个大概的想法。
$('#shopselect').change(function() {
$.ajax({
type: "GET",
url: "data.txt",
dataType: "json",
success: function(data) {
var selected = $('#shopselect option:selected').text()
if ($(".layer1:visible").length) {
$("#viewport").mapbox("center", {
x: shops." + selected + ".l1x,
y: shops." + selected + ".l1y
});
} else if ($(".layer2:visible").length) {
$("#viewport").mapbox("center", {
x: shops." + selected + ".l2x,
y: shops." + selected + ".l1y
});
} else if ($(".layer3:visible").length) {
$("#viewport").mapbox("center", {
x: shops." + selected + ".l3x,
y: shops." + selected + ".l1y
});
} else if ($(".layer4:visible").length) {
$("#viewport").mapbox("center", {
x: shops." + selected + ".l4x,
y: shops." + selected + ".l1y
});
}
}
});
json看起来像这样。
{
shops:{
primark:{
l1x:310,
l1y:132,
l2x:388,
l2y:264,
l3x:530,
l3y:355,
l4x:670,
l4y:450
},
boots:{
l1x:310,
l1y:132,
l2x:388,
l2y:264,
l3x:530,
l3y:355,
l4x:670,
l4y:450
}
}
}
是否有任何人谁可以点我在正确的方向。
x: shops." + selected + ".l1x,
y: shops." + selected + ".l1y
类似的东西是什么:
x: data.shops[selected].l1x,
y: data.shops[selected].l1y
答
而不是使用这个的这里是分号)是“primark”还是“boots”, 你应该可以访问这个数据wa Y:
var coords = data.shops[selected];
if ($(".layer1:visible").length) {
$("#viewport").mapbox("center", {
x: coords.l1x,
y: coords.l1y
});
等
答
假设你得到的值:
var selected = $('#shopselect option:selected').text()
(顺便说一下,你忘了
答
你可以做这样的事情来获得商店:
var shops = data.shops;
拿到店性质的正确方法是:
shops[selected].l4x
换句话说,把商店当作一个关联数组。
的JSON是在功能参数数据,所以你需要使用 X:data.shops [选择] .l1x, Y:data.shops [选择] .l1y – 2010-03-05 11:39:01
@大卫:ergh,我注意语法,并没有检查变量:-(我已经编辑了我的答案;感谢您的评论! – 2010-03-05 11:40:19
谢谢你们,我已经全部工作了。 – Trip 2010-03-07 21:50:07