2012-02-18 126 views
0

我想在节点中将POST http.request创建为其中正文为JSON的API。我使用JSON.stringify将我的对象转换为JSON字符串,但是,当我将字符串写入请求并查看我的请求时,它会双倍转义数据,即\变为\\\\。Node.JS - http.request,双转义JSON

 jsonData = JSON.stringify(myObject) 
     // everything is a correct JSON string, with slashes escapped once 
     post_req.write(jsonData, 'binary') 
     post_req.end() 
     console.log post_req // the JSON string was actually sent double escapped 

有关如何停止节点自动双转义JSON的任何提示? 当我把我的jsonData和curl或hurl.it它到服务器一切都按预期工作。

+1

您是否使用任何HTTP框架或库(例如express.js)或只是普通的旧node.js而没有任何依赖关系?围绕你的代码片段的一些上下文会很有帮助。 – maerics 2012-02-18 15:39:49

+0

我正在使用express但是post_req只是一个节点的实例http.request – 2012-02-18 16:25:48

回答

0

你的数据不是二进制的,它是一个字符串,所以只是省略'二进制'参数到post_req.write(jsonData),它会使用utf8,这是你想要的。你确定双转义是真的通过电线,你不被试图console.log post_req对象本身欺骗?

+0

我也试过utf-8,我之所以使用二进制的原因是因为那就是我用的curl命令。我被console.log骗了,愚蠢的错误,问题一定是别的地方。 – 2012-02-18 16:38:19