我想从json
中删除一些特殊字符而不进行解析
json
变成object
。
解析会导致错误,这就是为什么我想在没有json.parse()
的情况下这样做。
下面是我的json:
{
"id":324,
"name":"first",
"body":{
"sbody": "<p>\\\The New Stroy\\\</p>"
}
}
所需的输出:
{
"id":324,
"name":"first",
"body":{
"sbody": "<p> The New Stroy </p>"
}
}
答案 0 :(得分:1)
看起来您的输入是一个字符串,而使用JSON.parse
时出现的错误。
尝试一下
var response = '{"sbody": "<p>\\\The New Stroy\\\</p>"}';
response = response.replace(/\\/g, "");
var obj = JSON.parse(response);
console.log(obj);
答案 1 :(得分:1)
您需要在字符串上运行.replace
:
var string = '{"id":324,"name":"first","body":{"sbody":"<p>\\\The New Stroy\\\</p>"}}';
string = string.replace(/\\/g,'');
console.log(string);
//{"id":324,"name":"first","body":{"sbody":"<p>The New Stroy</p>"}}
模式为/\\/
的原因是因为\
用于转义字符。使用单个\
,我们最终逃脱了/
。这里我们需要做的是转义转义字符以将其转换为文字字符串字符:\\
。
模式后的g
表示要在字符串中“全局”搜索模式,因此我们将替换它的所有实例。
答案 2 :(得分:1)
var obj = {
"id":324,
"name":"first",
"body":{
"sbody": "<p>\\\The New Stroy\\\</p>"
}
}
// Convert object to string
var str = JSON.stringify(obj);
// Remove \ from the string
var convertedStr= str.replace(/\\/g,'');
// Convert updated string back to object
var newObj = JSON.parse(convertedStr);