簡體   English   中英

JSON.parse 帶所有雙引號

[英]JSON.parse with all double quotes

我面臨以下代碼片段的一個問題

我的情況是:

 var lit = "{"foo":"test \\"1\\"","bar":"test 2"}"; console.log(lit); var thaw2 = JSON.parse(lit); console.log(thaw2);

由於點亮 object 中的雙引號,我收到錯誤“意外標識符”。 我不能在這里將其更改為單引號,是否有任何解決方案可以將該字符串轉換為帶有所有雙引號的 json object?

任何幫助,將不勝感激。

轉義內部雙引號。

 var lit = "{\"foo\":\"test \\\"1\\\"\",\"bar\":\"test 2\"}"; console.log(lit); var thaw2 = JSON.parse(lit); console.log(thaw2);

最外邊界使用單引號而不是雙引號。

var lit = '{"foo":"test \\"1\\"","bar":"test 2"}';

console.log(lit);

var thaw2 = JSON.parse(lit);
console.log(thaw2);

問題的原因:當雙引號用於定義字符串並用作字符串的一部分時,它被視為右引號。

要解決此問題: 選項 1:使用單引號來開始和結束字符串。

var lit = '{"foo":"test \\"1\\"","bar":"test 2"}';

如果您想在字符串中使用單引號,這將不起作用。 在這種情況下,使用選項 2。

選項 2:Escaping。 使用 \' 或 \" 轉義字符

Eg: var lit = '{\'foo\':"test \\"1\\"","bar":"test 2"}'; (Escaping single quote)
var lit = "{\"foo\":\"test \\\"1\\\"\",\"bar\":\"test 2\"}"; (escaping double quote)

暫無
暫無

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

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