我有一个带有方向渲染器 json 的数组,它是字符串化的。
array[1].direction = '{\"routes\":[{\"bounds\":\"\....'
array[1].direction = '{\"routes\":[{\"bounds\":\"\....'
.
.
这就是我在我的地图上渲染这些 json 所做的。
for (var x=2; x<array.length; x++) {
renderDirections(array[x].direction);
}
function renderDirections(result){
var directionRenderer = new google.maps.DirectionsRenderer();
myDirections = JSON.parse(result, function(name, value){
if(/^LatLngPlaceHolder\(/.test(value)) {
var match = /LatLngPlaceHolder\(([^,]+),([^,]+)\)/.exec(value);
return new google.maps.LatLng(match[1], match[2]);
}
else{
return value;
}
});
directionRenderer.setMap(map);
directionRenderer.setDirections(myDirections);
directionRenderer.setOptions({suppressMarkers:true,preserveViewport:true});
}
这样做会"Uncaught SyntaxError: Unexpected token \"
在 JSON.parse 行出现错误。
但是,如果我这样做:
for (var x=2; x<array.length; x++) {
var examplejson = '{\"routes\":[{\"bounds\":\"\....'; //note that its an example json which i logged from `array[x].direction`
renderDirections(examplejson);
}
它呈现 json。