簡體   English   中英

雙引號內的JSON報價解析

[英]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.

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