2010-01-18 44 views
1

我有一個創建'post'的AJAX請求,並且在成功發佈後,我想要獲取HTML以將其注入到DOM中。現在我要返回一個詳細成功/錯誤的JSON數組,當我取得成功時,我還在響應中包含該帖子的HTML。因此,我將響應解析爲JSON,並將JSON數組中的鍵設置爲一堆HTML代碼。從JSON格式的AJAX響應中獲取HTML的正確方法是什麼?

當然,HTML代碼正在使JSON數組中斷 - 我該怎麼做才能將其轉義(或者是否有更好的方法來做到這一點?)。我得到一個像這樣的JSON數組的AJAX響應:

[{response:"success"},{html:'<div class="this is going to break... 

謝謝!

+0

只有在你的HTML單引號應該打破JSON。理想情況下,你應該使用json轉換庫做轉換 – Anurag 2010-01-18 02:13:35

回答

1

與您在JavaScript中使用的相反,'無法在JSON中開始字符串。這是嚴格意義上的「單引號工作當你傳遞JSON與JavaScript ..很像<br>工作當你想要把一個XHTML斷行。

因此,使用」打開HTML字符串,和消毒用\你的報價」。

json.org有更多的信息WRT你應該清理的東西。雖然特殊字符名單不長,它可能是最好的像阿努拉格建議在評論使用的庫。

+0

哦,不知道:) – 2010-01-18 02:18:32

+0

我應該澄清:單引號*工作*當你傳遞JSON到JavaScript ..很像
*作品*當您想要放置XHTML換行符時。 – 2010-01-18 02:32:07

+0

你應該編輯你的問題而不是評論它。 – 2010-01-18 02:35:02

1

除了通過BranTheMan提及的雙引號之外,換行符還會打破JSON字符串秒。您需要用\n替換換行符。

個人,我發現這是不夠的:

// Don't know what your serverside language is, example in javascript syntax: 

print(encodeJSON({ 
    response : "success", 
    html : htmlString.replace(/\n/g,'\\n').replace(/"/g,'\\"') 
})); 
+0

謝謝!那可行。 – ash 2010-01-18 14:22:25

相關問題