Appearance
JSON.parse
本节目标:理解“JSON.parse”的核心思路,并能把它用于实际开发或面试表达。
JSON.parse("[{\"ssid\":\"\\\"Linksys Velop\\\"\"}]")
在字符串中,碰到\都会被当作转义符,如果要表示\字符串本身,要使用\\; 在这段双引号包裹的字符串中,如果使用单引号,是不用转义的; 但为了反json时不出错,当要表示双引号本身时,必须使用转义符\进行转义; 所以里面的双引号全用\"来表示;
Json.parse时:
- 参数必须字符串;
- 当碰到字符串中的
\时,会当它是一个转义字符; - 所以,
\"\\\",会被认为是:引号开头; - 然后又碰到了
\, 同样当成转义符,那么它后面的\就会被当成了普通字符串,这样的结果就是:"\; - 再接下来,又出现了一个
\",这个\被认为是转义符号,后面加",表示转义一个特殊字符,也就是把有特殊含义的引号变成字符串"本身,所以结果是:"\"; - 整个
\"\\\"Linksys Velop\\\"\"就是:"\"Linksys Velop\""; - 也就是在js代码中,属性ssid的值为
"\"Linksys Velop\""的字符串; - 这个字符串在显示时,同样会把其中的\当成转义符号,所以
\"就是要表示一个双引号字符串,也就是包含双引号的字符串;
结果为: {
"ssid": "\"Linksys Velop\"", "hiddenSSID": false, "networkId": 0, "priority": 0, "status": 2, "preSharedKey": "*"
},