如何过滤" \"来自javascript中的json字符串

时间:2016-12-06 08:55:38

标签: javascript c json node.js

我在节点js服务器上收到一个json字符串,如下所示:

{\"gID\":1,\"sID\":18,\"T\":\"Parking\"}

我放入" \"是因为字符串是用C语言创建的,而\用于转义"否则会结束字符串。

我现在使用的代码是:

 app.get('/add/:jsonString', function(req, res){
        var json = JSON.parse(req.params.jsonString);
 });

有没有办法只删除字符串中的\?

3 个答案:

答案 0 :(得分:1)

为什么要删除它,没有必要?

var a ="{\"gID\":1,\"sID\":18,\"T\":\"Parking\"}";
console.log(JSON.parse(a));
// give Object { gID: 1, sID: 18, T: "Parking" }

修改

使用Url编码传递你的get json

var str = encodeURIComponent("{\"gID\":1,\"sID\":18,\"T\":\"Parking\"}");
// send your request
request.get({uri:"website/api?data="+str}, ...

在服务器中,解码uri然后解析

   var string = decodeURIComponent(req.query.data);
  var obj = JSON.parse(string);

答案 1 :(得分:0)

如果要删除“\”,请尝试使用正则表达式模式替换方法:

str.replace(/\\/g, "")

g标志用于替换char“\”的所有出现,而第一个“\”是转义字符。

有关详细信息,请参阅MDN

答案 2 :(得分:0)

我建议你使用POST请求将JSON传递给你的应用程序,因为有很多字符不是URI安全的。

但是,您可以使用内置unescape模块中的querystring方法。

const qs = require('querystring');

app.get('/add/:jsonString', function(req, res){
    const json = JSON.parse(qs.unescape(req.params.jsonString));
});