如何在JavaScript中处理JSON字符串错误(错误字符“”)

时间:2019-03-12 03:22:08

标签: javascript json

管理员已将内容直接填充到数据库中,并将其格式化为json字符串。但是,当从数据库中检索它并将其解析为json时,它失败了。因为直接填充数据时,不需要写内容( \" ),而是写( " ),而json字符串屏蔽是错误,无法解析。如何解决这个问题呢。 例如:

"aaaa"dddd"aaaa" => "aaaa\"dddd\"aaaa"

3 个答案:

答案 0 :(得分:2)

我假设当您从数据库中检索字符串时,您得到的内容类似于:'"aaaa"dddd"aaaa"'

如果是这样,那么您可以通过删除第一个和最后一个双引号并使用JSON.stringify将字符串转换为有效JSON字符串(包括转义内部双引号)来将其转换为有效的JSON字符串。 / p>

例如:

const s = '"aaaa"dddd"aaaa"';

let escaped = JSON.stringify(s.slice(1, -1));
console.log(escaped);
// "aaaa\"dddd\"aaaa"

let parsed = JSON.parse(escaped);
console.log(parsed);
// aaaa"dddd"aaaa

答案 1 :(得分:1)

您可以将replaceRegExpg标志一起使用

let str = `"aaaa"dddd"aaaa"`;
let result = str.replace(/"/g,`\\"`).slice(1,-2) + '"';
console.log(result)

OP询问我的数据库返回结果字符串"aaaa"dddd"aaaa",如何分配这样的"aaaa"dddd"aaaa"
您可以将从数据库返回的内容插入到模板字符串

let str = `${database.value}`;

答案 2 :(得分:1)

但是不确定服务器端使用什么数据库或哪种语言,而是尝试转义内部引号。尝试仅用单引号替换第一个和最后一个双引号。不确定此处是否提供完整的上下文以了解这是否是问题所在。无论如何,要考虑的事情