Javascript 如何解析此JSON以获取所需的数据?

Javascript 如何解析此JSON以获取所需的数据?,javascript,json,Javascript,Json,我一直在努力解决这个问题,需要一些帮助 这是将返回给我的JSON示例。我将它分配给一个名为result的变量,以便在代码中测试它。我不知道还有什么方法可以伪造JSON返回给我 JSON包含两个不同的对象,Line和Line2,每个对象都由多路径(多段线)特性组成 我正在尝试创建一个多段线对象,并使用ESRI JavaScript API将每个对象添加到地图中。以下是多段线对象的文档: 返回的JSON符合多段线对象的需要: "features": [ { "

我一直在努力解决这个问题,需要一些帮助

这是将返回给我的JSON示例。我将它分配给一个名为result的变量,以便在代码中测试它。我不知道还有什么方法可以伪造JSON返回给我

JSON包含两个不同的对象,Line和Line2,每个对象都由多路径(多段线)特性组成

我正在尝试创建一个多段线对象,并使用ESRI JavaScript API将每个对象添加到地图中。以下是多段线对象的文档:

返回的JSON符合多段线对象的需要:

"features": [
        {
          "attributes": {
            "OBJECTID": 2368
          },
          "geometry": {
            "paths": [
              [
                [
                  -123.94500566712864,
                  45.27071700030354
                ],
                [
                  -123.9449701393585,
                  45.27069704962526
                ],
                [
                  -123.94494162013,
                  45.27067958572745
                ],
                [
                  -123.94489725722464,
                  45.2706251239781
                ],
                [
                  -123.94489153421517,
                  45.27054128625377
                ]
              ]
            ]
          }
        },
但是我如何循环使用每个特性并将JSON插入到多段线对象中,从而使其格式正确


我知道我遗漏了一些东西,因为我不知道该怎么做。

我猜是这样的顺序

for (var i in result.results)
{
    var features = result.results[i].features;
    for (var j in features)
    {
        console.log(features[j].attributes.OBJECTID); // print OBJECTID
        var geometry = features[j].geometry.paths;
        for (var k in geometry)
        {
            console.log(geometry[k]); // print paths, arrays of points
            var points = geometry[k];
            for (var l in points)
                console.log(points[l]); // print points
        }
    }
}

打开JavaScript控制台,看看会发生什么

这是我刚刚编写的一个未经测试的解决方案

// Get the JSON string
json_string = whaterver_function_gets_you_the_json();

// Parse JSON into JS
polys = JSON.parse(json_string);

// Loop through polys and create Polyline
polys.features.forEach(function(el) {
    new Polyline(el.geometry);
});
编辑:很抱歉,我没有看到JSON.js链接。这个解决方案应该仍然有效,您只需调整正在循环的对象属性。例如:
result.results[0].features.forEach(函数(el){})或者如果您还需要循环所有结果,您可以只嵌套foreach

// Get the JSON string
json_string = whaterver_function_gets_you_the_json();

// Parse JSON into JS
polys = JSON.parse(json_string);

// Loop through polys and create Polyline
polys.features.forEach(function(el) {
    new Polyline(el.geometry);
});