javascript - javascript 如何解析带引号的 JSON 字符串

标签 javascript json string

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/

相关文章:

json - 使用Sed查找并替换json字段

string - 空字节停止于 `print` 但不是 `strlen` ,为什么?

JavaScript 随机数生成器

javascript - 计算测验结果

javascript - 添加 sum 并将其替换为 3 个选择

ios - NSJSONSerialization 返回 "<null>"字符串

javascript - 谷歌地图 API : how to tell if a marker is hidden by another marker?

json - Jackson:有没有办法将 POJO 直接序列化为 treemodel?

java - 检查字符串是否只包含字母空格和引号(最好没有正则表达式)

C# 将 ArrayList 转换为字符串列表?