2016-08-15 28 views
0

考慮以下字符串:防止JSON.parse刪除反斜槓和下面的字母?

text = '{"section": "\main" }' 

如果我申請JSON.parse這個我獲得的數據

{節: 「艾因」}

我想解析字符串轉換爲使用JSON.parse的Javascript變量,但我不希望它由於反斜槓而執行修改。

所以我可以使用,使JSON.parse不會刪除反斜線和字母「M」,而是設置給我的數據

{部分:「\主」}

任何人有任何想法如何做到這一點?

+0

'JSON.parse'不會更改字符串中的任何內容。如果你需要在字符串中使用反斜槓,請用另一個反斜槓進行轉義。 – Teemu

+4

字符串''text = {「section」:「\ main」}「'是什麼,但不是JSON。如果您將其提供給'JSON.parse',則所有投注都將關閉。 – Tomalak

+0

我正在使用需要反斜槓的Latex字符串。目前,我必須爲所有Latex命令使用兩個反斜槓,例如。 $ \\ int_D G(x,y)f(y)dy $。這是因爲JSON.parse剝離了第一個。如果我可以阻止JSON.parse與反斜槓交互,那麼我可以編寫標準的Latex,例如。 $ \ int_D G(x,y)f(y)dy $ – csss

回答

2

你必須用4個反斜槓替換所有單反斜槓。

jsonString.replace('"\','"\\\\'); 

這應該做的伎倆。不知道爲什麼需要4,但這對我有效。

+0

不,這將打破轉義有效的輸入字符串部分。在解析層面,破壞的輸入無法很容易地修復。 – Tomalak

+0

好的,所以你想逃跑,你不想逃跑。你的數據有多幹淨?請注意,它只會改變「\不\ \。@Tomalak – J0N3X

+0

我不是OP;;無論如何,使用''」\''並不重要。 「{」部分「:」\ main「}」僅僅是一個例子,當然不是OP的全部輸入。假設「雙引號後面的每個反斜槓」需要額外的轉義並不比假設「每個反斜槓」需要額外轉義更好。 – Tomalak