【发布时间】:2015-09-14 14:44:55
【问题描述】:
我有一个 .json 文件,我正尝试将其作为文本字符串导入。
这是确切的文件内容:
{ "type": "Polygon", "coordinates": [ [ [ 1.5887868, 50.8315241 ], [ 1.5830702, 50.8466931 ]....... ] ] ] }
我正在尝试使用它来导入它:
jsonString = jQuery.get('./polygons/1.json', function(data) {
console.log(data);
});
但是,console.log(data) 是作为一个数组出现的,我不希望它出现 - 我只想要文本字符串,就像它在文件中一样。
我该如何做到这一点?
更新
所以我的整个代码是:
jsonString = jQuery.get('./polygons/1.json', function(data) {
return JSON.stringify(data);
});
但现在我得到了下面的截图:
我想这是我试图摆脱的responseText。为什么jQuery.get 将所有这些附加信息添加到我的文件中?我做错了什么?
第二次更新
当有人他们向我解释某事而我不明白时,我总是感到难过。 所以,这整件事存在,所以我可以根据用户的需要将动态数据拉入jsonString。
不过现在,我必须通过使用地理数据坐标制作单个文件,然后使用 map.data.loadGeoJson('./maps_polygons/' + territory + '.json'); 来使用它来完成这一壮举
function mapClick(data) {
territory = data; //the section of the map that the user clicks on, e.g. `california` or `texas`
var mapOpt = {
center:new google.maps.LatLng(50.477971, 0.482999),
zoom:8,
};
map = new google.maps.Map(document.getElementById("googleMap"),mapOpt);
map.data.loadGeoJson('./maps_polygons/' + territory + '.json');
google.maps.event.addDomListener(window, 'load', initialize);
}
现在,这个 WORKS,但我觉得它必须非常低效,所以我想将所有坐标保存在一个文件中,并将它们作为 @ 的主要输入动态引入987654334@ 已更改。这必须成为可能,根据你们向我展示的内容,我可以编写一个ajax 查询,或者在函数内使用jQuery.get,这将带来 json 字符串in,但这对我没有好处,因为它被困在该函数内部,我无法使用它。
这是我的挫败感......
最终更新
好的,感谢 this page 和 this page,以及 @Lye-Fish 终于帮助我了解这一切是如何运作的。
今晚在搜索 SO 时,我发现了大量关于这个主题的各个方面的帖子,所以我想全力以赴,最终让这两件事发挥作用:
- 从 ajax 调用中获取一些东西的想法(我发帖的最初原因)
- 如何将其重新绑定到 Google Maps API。
HTML
<area shape="poly" coords="..." href="#" alt="california" onClick="mapClick(alt)"/>
Javascript
function mapClick(data) {
territory = data;
function getPolygons(territory, passTodoWork) {
jQuery.get('./maps_polygons/'+ territory +'.json', function(data, status, jqXHR) {
var coordinates = JSON.parse(jqXHR.responseText);
passTodoWork(territory,coordinates);
});
}
function drawMap(firstItem, secondItem) {
var mapOpt = {
center:new google.maps.LatLng(50.367247, 2.745326),
zoom:8,
};
map = new google.maps.Map(document.getElementById("googleMap"),mapOpt);
map.data.addGeoJson(secondItem);
map.data.setStyle({
fillColor: '#2b86cc',
strokeColor: '#1e5c8c'
});
google.maps.event.addDomListener(window, 'load', initialize);
}
getPolygons(territory, drawMap);
}
注意,我没有在最终的 drawMap 函数中使用 territory - 这是另一段代码的一部分,它使得这一切都太长而无法证明这一点...... p>
【问题讨论】:
-
console.log(JSON.stringify(data))
标签: javascript jquery json google-maps-api-3