Javascript 如何在地理编码中忽略由于返回的JSON中的无效令牌而导致的语法错误
我正在向州/国家地理编码发送一个查询,并获得一个JSON响应列表。有时JSON没有得到正确的解析。我怎么能忽略这样的结果而继续下一个呢 这里是ajax调用Javascript 如何在地理编码中忽略由于返回的JSON中的无效令牌而导致的语法错误,javascript,json,ajax,syntax-error,httpresponse,Javascript,Json,Ajax,Syntax Error,Httpresponse,我正在向州/国家地理编码发送一个查询,并获得一个JSON响应列表。有时JSON没有得到正确的解析。我怎么能忽略这样的结果而继续下一个呢 这里是ajax调用 $.ajax({ url: "/abc/points", context: document.body, data: { latitude: places[0].geometry.location .lat(), longitude: places[0].geo
$.ajax({
url: "/abc/points",
context: document.body,
data: {
latitude: places[0].geometry.location
.lat(),
longitude: places[0].geometry.location
.lng(),
distance: $(
'input[name="distance"]:checked')
.val(),
city: city1,
state: state1,
country: country1,
},
success: function(responseText) {
$("#response-div").html(
responseText);
$("#response-div")
.find("script")
.each(
function(i) {
eval($(
this)
.text());
});
$("html").removeClass(
"wait");
}
});
返回了数百个结果,我只希望它跳过那些导致语法错误的结果,然后继续。如果您需要,我可以发布返回的示例JSON文本
谢谢
评论
好的,我无法确定是否可以忽略语法错误。下面是我的下一个方法。基本上,它是一个解析为JSON的响应,并且无法忽略JSTL中的\n字符。我需要能够替换\n以及。感谢您的帮助。我知道有些帖子解释了如何忽略其中一个,但不是同时忽略这两个
function(marker, event, context) {
var contentString = '<div style="width:600px; height: 300px;">' +
'<div> <h4>' + '${fn:replace(object.name, search, replace)}' + ' </h4> </div>' +
'<table class="table">' +
'<tbody>' +
'<tr class="active">' +
'<td>Address: </td>' +
<c:set var="address" value="${object.stAddress} ${object.city}, ${object.state} ${object.zipcode}" />
'<td colspan=5>' + "${fn:replace(address, ",", " ")}"+"${fn:replace(address, "\n", " ")}" + '</td>' +
' </tr>' +
好吧,我能弄明白。把我的解决方案放在这里,以防对任何人都有帮助
<c:set var="modAdd" value="${fn:replace(origAdd,newLn, "")}" />
也许用try…catch…什么JSON来包装评估行?您共享的代码中似乎没有任何内容与JSON有关。如果服务器返回一个application/json内容类型,那么jQuery将自动解析它,responseText可能是一个对象,因此将它传递给html方法没有意义?永远不要使用EVAL解析JSON。多年来,我们已经有了一个正确、快速、易于使用、易于调试的JSON解析器。请格式化您的代码,使其可读。第一行没有足够的缩进来触发代码格式化,但其余的都是大量缩进,因此左侧有大量无用的空白和水平滚动条!有很多代码整理工具可以使用。@yuriy636我也在考虑这些问题。但是,您会在catch中添加什么,以便它绕过错误并继续处理其他结果呢?
<c:set var="modAdd" value="${fn:replace(origAdd,newLn, "")}" />
${fn:replace(modAdd, "'", "")}