Javascript 如何在地理编码中忽略由于返回的JSON中的无效令牌而导致的语法错误

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

我正在向州/国家地理编码发送一个查询,并获得一个JSON响应列表。有时JSON没有得到正确的解析。我怎么能忽略这样的结果而继续下一个呢

这里是ajax调用

$.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, "'", "")}