提问人:PoorChristmas 提问时间:12/12/2017 最后编辑:dganPoorChristmas 更新时间:12/12/2017 访问量:369
带有双qoute的JSON,如何管理?
JSON with double qoute, how to manage?
问:
好吧,我正在使用一个 Web 应用程序 好吧,我正在使用一个 Web 应用程序,它以 JSON 对象格式返回一个 String,如下所示:
[{"name":"Luigi","Last_Name":"Car"},{"name":"Mario","Last_Name":"Bros"}]
但问题是,当一个字段中有一个双引号时,举个例子:
[{"name":"Luigi"","Last_Name":"Car"},{"name":"Mario","Last_Name":"Bros"}]
(路易吉有一个“ )
当字段没有引号时,我用以下行管理此字符串:
JSON.parse(response.d)
它工作得很好,但是正如我之前提到的,问题是当某些领域具有这种特征时。
我希望你能帮助我。提前致谢。
答:
0赞
prabhu379
12/12/2017
#1
以下字符保留在 JSON 中,必须正确转义才能在字符串中使用:
Backspace is replaced with \b.
Form feed is replaced with \f.
Newline is replaced with \n.
Carriage return is replaced with \r.
Tab is replaced with \t.
Double quote is replaced with \"
Backslash is replaced with \\
0赞
user9081948
12/12/2017
#2
@PoorChristmas,有多种方法可以解决这个问题。
如果您要生成 JSON,则只需为任何双引号添加转义字符,如下所示 [{“name”:“路易吉\\”“,”Last_Name“:”汽车“},{”name“:”马里奥“,”Last_Name“:”兄弟“}]
如果您无法控制 JSON 的生成,请尝试使用以下逻辑将任何多个双引号替换为单双引号
var a = '[{"name":"Luigi"""""""""""""","Last_Name":"Car"},{"name":"Mario","Last_Name":"Bros"}]';
var b = a.split("");
var c = "";
for (i = 1; i < b.length; i++) {
if (b[i] == '"') {
if (b[i - 1] == '{' || b[i + 1] == ':' || b[i - 1] == ':' || b[i + 1] == ',' || b[i - 1] == ',' || b[i + 1] == '}') {
c = c + b[i];
}
} else {
c = c + b[i];
}
}
console.log(c)
评论
0赞
12/12/2017
如果它有效,@PoorChristmas竖起大拇指。干杯。
评论