管理员已将内容直接填充到数据库中,并将其格式化为json字符串。但是,当从数据库中检索它并将其解析为json时,它失败了。因为直接填充数据时,不需要写内容( \"
),而是写( "
),而json字符串屏蔽是错误,无法解析。如何解决这个问题呢。
例如:
"aaaa"dddd"aaaa" => "aaaa\"dddd\"aaaa"
答案 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)
您可以将replace
与RegExp
和g
标志一起使用
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)
但是不确定服务器端使用什么数据库或哪种语言,而是尝试转义内部引号。尝试仅用单引号替换第一个和最后一个双引号。不确定此处是否提供完整的上下文以了解这是否是问题所在。无论如何,要考虑的事情