簡體   English   中英

JSON.parse解析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.

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