使用javascript删除json字符串中的反斜杠

时间:2016-11-18 04:58:20

标签: javascript

我有JSON响应,它有反斜杠,有些响应不包含反斜杠。

我需要根据响应显示错误消息,如何使用javascript解析JSON响应?

带有反斜杠的JSON响应,

{"_body":{"isTrusted":true},"status":0,"ok":false,"statusText":"","headers":{},"type":3,"url":null} 

使用反斜杠回复,

{"_body":"{\"timestamp\":\"2016-11-18T04:46:18.972+0000\",\"status\":500,\"error\":\"Internal Server Error\",\"exception\":\"java.lang.ArrayIndexOutOfBoundsException\",\"message\":\"1\",\"path\":\"/login\"}","status":500,"ok":false,"statusText":"Internal Server Error"}

我尝试了以下方式,但它只适用于没有反斜杠的JSON响应。

var strj = JSON.stringify(err._body);
 var errorobjs = strj.replace(/\\/g, "");

3 个答案:

答案 0 :(得分:2)

实际上问题不在于/斜杠。 JSON is INVALID"

从后端服务器中删除这些double quote

  

{ “_体”:<强> “ {\” 时间戳\ “:\” 2016-11-18T04:46:18.972 + 0000 \ “\ ”状态\“:500,\” 错误\“:\“内部   服务器   错误\ “\ ”异常\“:\ ”java.lang.ArrayIndexOutOfBoundsException \“,\ ”消息\“:\ ”1 \“ \ ”路径\“:\ ”/登录\“}的”< / STRONG>, “状态”:500, “OK”:假 “状态文本”:“内部   服务器错误“}

{”时间戳和登录后的一个“}之前

var data = '{"_body":{\"timestamp\":\"2016-11-18T04:46:18.972+0000\",\"status\":500,\"error\":\"Internal Server Error\",\"exception\":\"java.lang.ArrayIndexOutOfBoundsException\",\"message\":\"1\",\"path\":\"/login\"},"status":500,"ok":false,"statusText":"Internal Server Error"}'; var json_data = JSON.parse(data); console.log(json_data); 这两个突出显示,您的代码将工作。

body

实际上,你正在将"body" : "bodyOBJ" //Invalid "body" : bodyObj //Valid 对象包装在后端的字符串中,这是无效的。

find

答案 1 :(得分:0)

VC2,VC3....

答案 2 :(得分:0)

解决方案:

g++ main.cpp -o example.out

说明:

您有一个顶级对象,其中包含一个键var response = {"_body":"{\"timestamp\":\"2016-11-18T04:46:18.972+0000\",\"status\":500,\"error\":\"Internal Server Error\",\"exception\":\"java.lang.ArrayIndexOutOfBoundsException\",\"message\":\"1\",\"path\":\"/login\"}","status":500,"ok":false,"statusText":"Internal Server Error"}; var body = JSON.parse(response._body); console.log(body.error); 。该键的值是一个包含JSON本身的字符串。这通常是因为服务器端代码没有正确创建JSON。这就是你在字符串中看到_body的原因。除非您能够修复服务器端代码,否则必须手动解码嵌套的JSON。