簡體   English   中英

Javascript,Ajax和JSON:解析響應時出現奇怪的“ xml處理”錯誤

[英]Javascript, Ajax & JSON: weird “xml processing” error when parsing response

我用jquery $.get()進行了ajax調用,它返回一個json數組,並且在某些情況下可以正常工作。 但是,在其他情況下,在Firefox中,我收到一個奇怪的錯誤消息(德語翻譯):

XML處理錯誤:語法錯誤

這是json的結構,如Java控制台中的servlet所示:

[{"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響應上設置了正確的標頭(內容類型:application / json)

因為從您的帖子中可以看到,就像您將字符串傳遞給JSON.stringify

希望我能對您有所幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM