1

我正在开发一个映射工具,我正在使用 jQuery 从服务器下载 JSON 数据。jquery 的代码目前是:

$.getJSON("start.json", function(data) {
    var items = [];

    $.each(data, function(key, val) {
        alert("data: " + key + "->" + val);
    });
});

json 文件如下所示:

{
    "type"  :   "obstacle",
    "top"   :   20,
    "left"  :   10,
    "height":   50,
    "width" :   70,
    "tall"  :   10
}

现在,“问题”是,可以清楚地看到,在这种格式下,json 只能包含一个对象。我如何构建我的文件(以及我的 jquery)以拥有多个对象?

提前致谢。

4

2 回答 2

1

您可以像这样创建一个 JSON 对象数组:

[
    { 
        "type"  :   "obstacle", 
        "top"   :   20, 
        "left"  :   10, 
        "height":   50, 
        "width" :   70, 
        "tall"  :   10 
    } ,
    { 
        "type"  :   "obstacle", 
        "top"   :   50, 
        "left"  :   10, 
        "height":   50, 
        "width" :   20, 
        "tall"  :   10 
    } 
]

编辑: jQuery 会是这样的:

$.each(data, function(index, obstacle))
{
    $.each(obstacle, function(key, val) { 
        alert("data: " + key + "->" + val); 
    }); 
}
于 2012-08-19T08:51:13.327 回答
0

您可以使用数组来存储它们:

{
  "objects": [
    {
      "type"  :   "obstacle",
        "top"   :   20,
        "left"  :   10,
        "height":   50,
        "width" :   70,
        "tall"  :   10
      }, {
      "type"  :   "obstacle",
        "top"   :   20,
        "left"  :   10,
        "height":   50,
        "width" :   70,
        "tall"  :   10
      }, {
      "type"  :   "obstacle",
        "top"   :   20,
        "left"  :   10,
        "height":   50,
        "width" :   70,
        "tall"  :   10
      }
    ]
}

现在,当您迭代时,您可以访问单个对象的属性:

$.each(data.objects, function(key, val) {
  console.log(key + ' => ' + val);
});
于 2012-08-19T08:50:03.520 回答