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