好的,所以我有一个大的JSON文件,其中包含我正在处理的谷歌地图项目控件的数组和对象设置......看起来像这样:
{
"settings":
{
"DEFAULT_MAP_SETTING": "DEFAULT_MAP_SETTINGS",
"DEFAULT_MAP_RES": "county",
"DEFAULT_MAP_CAT": "popden"
},
"map_settings":
{
"DEFAULT_MAP_SETTINGS":
{
"map_options":
{
"center": [39.828175, -94.5795],
"mapTypeId": "TERRAIN",
"streetViewControl": false,
"scrollwheel": false,
"overviewMapControl": false,
"mapTypeControl": false,
"zoom": 4
},
"map_bounds":
{
"upper-left": [98.70, -127.50],
"lower-right": [48.85, -55.90]
},
}
}
}
我的问题是如何以json格式获取此数据,因为它必须采用json格式加载选项以及谷歌地图中没有的内容。比如我有
var myMapOptions = {
"zoom": 4,
"minZoom" : 4,
"scrollWheel" : false,
"center": initialLoc,
"mapTypeId": google.maps.MapTypeId.ROADMAP,
};
var theMap = new google.maps.Map(document.getElementById("map_canvas"), myMapOptions);
这会加载谷歌地图。但我无法弄清楚如何使用我的大Json文件设置myMapOptions。我所知道的每个方法都会返回字符串中的json数据并消除格式化。就像jQuery中的$ .ajax将为我获取json,但它会删除它的格式。
任何人都可以帮助我吗?
答案 0 :(得分:0)
但是,您可以使用$ .ajax的dataType重写此内容:
$.ajax({
url: "test.html",
dataType: "text",
success: function(data){
alert(data);
}
});
上一个脚本会提示您想要的JSON文件。
<强> [更新] 强> 您可以尝试使用eval():
$.ajax({
url: "test.html",
dataType: "text",
success: function(data){
var options = eval(data);
}
});
在这种情况下,您的数据需要通过javascript执行。
[更新2] JsonP样式,你的json文件需要看起来像这样:
var options = {
"zoom": 4, "minZoom" : 4,
"scrollWheel" : false,
"center": new google.maps.LatLng(39.828175, -94.5795),
"mapTypeId": google.maps.MapTypeId.ROADMAP
};
请注意“var options =”
您的ajax请求需要看起来像这样:
$.ajax({
url: "test.html",
dataType: "text",
success: function(data){
alert(data);// will show your data as text
eval(data); this will execute your "JSON file"
//after eval you can now use options as a variable
alert(options);
}
});