Javascript,Ajax& JSON:解析响应时出现奇怪的“xml处理”错误

时间:2017-07-27 11:13:12

标签: javascript java json ajax

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

  

XML处理错误:语法错误

这是json的结构,如我的servlet在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中的所有这些反斜杠来自哪里?

1 个答案:

答案 0 :(得分:1)

您的回复看起来并不像您预期​​的那样由jQuery处理。 尝试添加

source 'https://github.com/CocoaPods/Specs.git'
install! 'cocoapods', :integrate_targets => false
platform :ios, '8.0'
target 'Unity-iPhone' do
pod 'Google-Mobile-Ads-SDK', '~> 7.13'
end
post_install do |installer|
installer.pods_project.targets.each do |target|
 target.build_configurations.each do |config|
   config.build_settings['ENABLE_BITCODE'] = 'NO'
 end
 end
 end

作为您请求的选项,还要注意您在服务器端设置HTTP响应的正确标头(Content-Type:application / json)

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

我希望我帮助你,度过愉快的一天