Node.JS - http.request,双重转义JSON

时间:2012-02-18 14:35:50

标签: json http node.js

我正在尝试在Node中将POST http.request发送到一个身份为JSON的API。我使用JSON.stringify将我的对象转换为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

有关如何停止Node自动双重转义JSON的任何提示? 当我将jsonData和curl或hurl.it带到服务器时,一切都按预期工作。

1 个答案:

答案 0 :(得分:0)

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