Javascript (对象)从节点中的JSON请求返回
我还有一个关于Node的简单问题。我试图向开放式课件搜索API()发出一个简单的http请求,但在解析JSON时遇到了一些问题。。。这通常不是问题。 请求返回一个包含转义字符和斜杠的字符串,因此我对响应字符串运行了replace和unescape,但最终返回类似“[object]”的内容。现在,我真正想做的就是能够看到最终返回的内容,这样我就可以知道是否可以最终将其解析为有效的JSON。不幸的是,这也不起作用。我已经读过几个关于堆栈溢出的类似线程,但是我仍然无法让它工作 我所尝试的:Javascript (对象)从节点中的JSON请求返回,javascript,json,http,node.js,Javascript,Json,Http,Node.js,我还有一个关于Node的简单问题。我试图向开放式课件搜索API()发出一个简单的http请求,但在解析JSON时遇到了一些问题。。。这通常不是问题。 请求返回一个包含转义字符和斜杠的字符串,因此我对响应字符串运行了replace和unescape,但最终返回类似“[object]”的内容。现在,我真正想做的就是能够看到最终返回的内容,这样我就可以知道是否可以最终将其解析为有效的JSON。不幸的是,这也不起作用。我已经读过几个关于堆栈溢出的类似线程,但是我仍然无法让它工作 我所尝试的: 迭代正在
- 迭代正在传递的对象,因为我认为它应该是具有键值对的对象,并在其上运行,每次都记录它。但是,这会将其打印为字符串:
- 使用“+x,toString()”尝试将其转换为字符串
- 根据使用console.log(“%j”,x)
var request = require('request');$
request('http://www.ocwsearch.com/api/v1/search.json?q=' + skill + '&contact=http%3a%2f%2fwww.ocwsearch.com%2fabout/',$
function(error, response, body){$
if(!error && response.statusCode == 200){~$
console.log(response.toString().replace(/\\\//g, "/"));$
var x = response.toString().replace(/\\\//g, "/");$
console.log(x)$
console.log(x.keys());$
}$
});$
现在,我真正想做的就是能够看到最终返回的内容,这样我就可以知道是否可以最终将其解析为有效的JSON
然后在浏览器窗口中发出请求(使用Chrome,您可以在inspector选项卡中看到返回的实际结果-按F12)
例如:
根据这一点,返回的是有效的JSON。你确定你不是为了自己的利益而太聪明吗
无法将响应写入字符串,因为它是一个对象。您需要返回数据,但我认为body字段符合您的要求。你试过只打印
body
?你也可以在body中的键上循环,看看打印出来的是什么(for(var k in body){console.log(k)}
)确认,我太傻了。工作到深夜,我有时用“反应”来代替“身体”。。。我可能应该更清楚一点,当我试图打印返回的json时,服务器上会打印大量转义斜杠(它转义了原始转义序列。例如,它返回“http:\\/\\/…”)。我试图删除它们,因为它不允许我直接调用属性,即使我直接将它们放到浏览器中,看起来很好。此外,在上面我发布了我无法循环的帖子,虽然我认为这只是我晚上很累,没有意识到我在中间的某个地方将“body”变量更改为“response”,这并没有返回我任何东西…*并没有返回我想看的东西,是的。。。这就是问题所在。。我所要做的就是在body上运行所有内容,然后在body上运行JSON.parse()。我真蠢。。。谢谢很高兴你把问题解决了:D