[英]JSON parse of quote inside double quote
我的值是一個字符串:
"['Eitaj', 'Jason Json', 'Eitaj M', "Jason Json's"]"
我正在嘗試使用JSON.parse()
解析它,但是出現錯誤
未捕獲到的SyntaxError:JSON中位置1處的意外令牌'
我發現工作正確的字符串是:
JSON.parse('["Eitaj", "Jason Json", "Eitaj M", "Jason Json\'s"]')
除了將單引號和雙引號放在一起之外,還有什么別的技巧可以使用嗎?
檢查是否適合您。
let s = "['Eitaj', 'Jason Json', 'Eitaj M', \\"Jason Json's\\"]"; let parsed = JSON.parse(s.split(",").map(seg => { return seg.replace(new RegExp("'.*'", "g"), function(match) { return '"' + match.substring(1, match.length - 1) + '"'; }) }).join(",")); console.log(parsed);
更新1
這將處理注釋中提到的上述片段的缺陷。 但是,根據您的要求,可能還會有其他邊緣情況需要處理。
let s = "['Eitaj', 'Jason Json', 'Eitaj M', \\"Jason Json's\\",\\"Test'test'Test\\",'Acme, Inc.',\\"'Test'\\"]"; let parsed = JSON.parse("[" + s.substring(1, s.length - 1).match(new RegExp(`((['\\""]).*?(\\\\2))`, "g")).map(seg => { return seg.trim().replace(new RegExp("^'.*'$", "g"), function(match) { return '"' + match.substring(1, match.length - 1) + '"'; }) }).join(",") + "]") console.log(parsed);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.