var str = '{"Language":"en","Type":"General","Text":""Mela" means "apple" in Italian"}';
现在JSON.parse(str)
抛出此错误
未捕获的语法错误:JSON 中位置 43 处出现意外的标记 M
现在替换引号会转义整个字符串,并且解析的 JSON 不再可用
str = str.replace(/\\([\s\S])|(")/g,"\\$1$2");
"{\"Language\":\"en\",\"Type\":\"General\",\"Text\":\"\"Mela\"表示\"apple\""意大利语\"}"
下面的其他解决方案似乎不适用于这种情况
How to escape a JSON string containing newline characters using JavaScript?
最佳答案
您需要在字符串中的每个双引号之前添加反斜杠,如下所示:
const str = '{"Language":"en","Type":"General","Text": "\\"Mela\\" means \\"apple\\" in Italian"}';
const obj = JSON.parse(str)
console.log(obj.Text)
关于javascript - javascript 如何解析带引号的 JSON 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48377190/