[問題解法紀錄] Uncaught SyntaxError: Unexpected token ''', "['abc']" is not valid JSON

問題解法紀錄 · 2024-04-30 · 177 人瀏覽過

最近做了個爬蟲可以自動在Zerojudge上爬蟲每周刷題進度,更新使用者名單之後跳出了報錯,找了很久才發現是符號的問題 2024-04-30T14:35:46.png


後來在shell做了個實驗,確認了問所在... 2024-04-30T14:38:34.png 這稍微有點反直覺,因為在 javascript 中,單、雙引號是可以互相通用的,但不能混用。所以常常利用這個特性,如果字串裡面有包含到其中一個引號,但又不想加上跳脫字元反斜線(可能數量很多時),就會利用這個特性規避字元衝突。

根據W3C的教學內文提到JSON格式規定,內部的 key value 必須使用雙引號框起來,包括字串。 2024-04-30T14:41:01.png

當時要輸入使用者名單時,覺得太麻煩,於是用爬DOM的方式直接在 web console 裡面取得所有人的名條。在javascript中,字串輸出時是使用單引號作為標示,當時我就直接複製貼到我的配置文件中了,由於配置文件使用.env檔,所以為了讓他變成字串且不衝突,所以索性在前後加上雙引號。結過才發現陣列裡面的字串不能使用單引號表示。最後還是丟到vscode裡面用搜尋取代解決

javascript json
Theme Jasmine by Kent Liao