JavaScript、Ajax 和 JSON : weird "xml processing" error when parsing response

标签 javascript java json ajax

我使用 jquery $.get() 进行 ajax 调用,它返回一个 json 数组,并且在某些情况下工作正常。然而,在其他情况下,在 Firefox 中我收到一个奇怪的错误(翻译自德语):

XML-processing error: syntax error

这是 json 的结构,如我的 servlet int java 控制台所示:

[{"key":"...","type":"...","content":"..."},
 {"key":"...","type":"...","content":"..."},
 ...]

这是使用 JSON.stringify() 登录 ff 控制台时的结构:

[{\"key":\"...",\"type":\"...",\"content":\"..."},
     {\"key":\"...",\"type":\"...",\"content":\"..."},
     ...]

我的请求看起来像这样:

$.get(url, 
        {"operation": "search", "searchText": searchText, "types": types, "resultNumber": 99},
        function(data, status){
            console.log(JSON.stringify(data));
    });

我用于创建 JSON 数组的 java 方法:

private JSONArray parseJSON (ArrayList<ResultObject> aResultList) throws JSONException
    {
        JSONArray resultJSONArray = new JSONArray();

        for (ResultObject resultObject : aResultList)
        {
            JSONObject jsonObject = new JSONObject();
            HashMap<String,String> fields = resultObject.getFields();

            for (Map.Entry<String, String> entry : fields.entrySet())
            {
                jsonObject.put(entry.getKey(), entry.getValue());
            }
            resultJSONArray.put(jsonObject);
        }
        return resultJSONArray;
    }

这是怎么回事?返回的 json 中的这些反斜杠是从哪里来的?

最佳答案

看起来 jQuery 没有按照您的预期处理您的响应。 尝试添加一个

dataType:"json"

作为您的请求的选项,还要注意您的服务器端在 HTTP 响应上设置正确的 header (内容类型:application/json)

因为正如我从你的帖子中看到的,看起来你将一个字符串传递给 JSON.stringify

希望对你有帮助,祝你有美好的一天

关于JavaScript、Ajax 和 JSON : weird "xml processing" error when parsing response,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45349186/

相关文章:

javascript - Extjs 和 Grails 我怎样才能阻止祖先

java - Spring如何在Spring Boot中设置数据源

java - 使用客户信息生成唯一 ID

java - volatile关于可见性及时性的详细语义

javascript - 如何从 JSON 中删除方括号

javascript - 如何在 Google 脚本编辑器之外访问定义的函数?

ios - JSON 处理错误 : Output not fetched correctly

javascript - 该模式如何获得循环引用

javascript - Durandal showMessage 无法识别断线

javascript - 从网站向日历应用程序添加事件?