繁体   English   中英

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

[英]How to handle JSON string errors (error character ") in javascript

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

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

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

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

例如:

 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 

您可以使用带有RegExpg标志的replace

 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}`;

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM