![](/img/trans.png)
[英]Confused with json object and string and JSON.parse and JSON.stringify
[英]JSON.parse parses JSON.stringify output but not string itself
我剛在Chrome控制台中找到了這個:
JSON.stringify(({wat:"\""}))
> "{"wat":"\""}"
JSON.parse(JSON.stringify(({wat:"\""})))
> Object {wat: """}
JSON.parse('{"wat":"\""}')
> VM34235:1 Uncaught SyntaxError: Unexpected string in JSON at position 9(…)
截圖:
當傳遞JSON.stringify({wat:"\\""})
的輸出時, JSON.parse
成功解析,但是當我嘗試評估JSON.parse('{"wat":"\\""}')
時拋出JSON.parse('{"wat":"\\""}')
。
我叫惡作劇。
引號字符必須使用兩個反斜杠進行轉義,如下所示:
JSON.parse('{"wat":"\\""}')
當僅使用一個反斜杠對其進行轉義時, JSON.parse()
實際上獲得以下值進行解析:
{"wat":"""}
這當然是無效的JSON。
嘗試像這樣添加2個反斜杠。 JS將\\視為轉義字符,並忽略它。 所以:
{wat:"\\""}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.