如何在不解析的情况下从Json删除特殊字符

时间:2018-10-19 10:27:12

标签: javascript jquery node.js json

我想从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>"
    }
}

3 个答案:

答案 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);