2012-06-26 68 views
2

我解析JSON如何獲得元素的內容,而無需轉換&QUOT爲「包含在一個HTML元素

考慮這個標記:?

<div id="1"> 
    {"string":["&quot;\u041a\u0410\u041a&quot;"]} 
</div> 

而且這個腳本:

var a = $.parseJSON($("#1").html()) 

這將返回一個錯誤(「Uncaught SyntaxError:Unexpected token \」),因爲&quot被轉換爲" s由html()方法。

如何讓jQuery在這種情況下不解析HTML? $.text()也不起作用。還是我在做一些非常錯誤的事情?

的jsfiddle:http://jsfiddle.net/VJvpY/6/

編輯:注意,誤差僅在控制檯上顯示。

EDIT2:我需要解析JSON並創建一個JS對象。

+2

我不認爲你可以,jQuery不是解析的人。看看瀏覽器給你的內容。解決這個問題的一個方法是將json放在textarea中,並獲取textarea的值。 –

+0

所以jQuery無法訪問實際的標記,包括''? – sbichenko

+0

正確,在jQuery可以訪問它的時候,瀏覽器已經解析了它。 –

回答

0

我結束了在JSON服務器端逃逸所有&秒。

0

你不能沒有放置在JSON一個文本,這樣瀏覽器不分析它(jQuery是不是一個搞亂你的報價。)

但是,你的JSON仍然不能由於「/」由jquery解析,我不知道如何解決這個問題。即使在逃脫之後,它仍然不起作用。

http://jsfiddle.net/VJvpY/3/

+1

[你可以串化JSON然後解析它,它將按預期工作。](http://jsfiddle.net/VJvpY/4/) – Ohgodwhy

+0

@Ohgodwhy然而,這又回到解析報價!這就是爲什麼我相信jquery對此感到窒息。 –

+0

@Ohgodwhy這樣JSON實際上不會被解析 - 它保持一個字符串。我需要用JSON字符串創建一個對象。 – sbichenko

相關問題