(对象)从Node中的JSON请求返回

时间:2012-06-16 08:32:28

标签: javascript json http node.js

我还有一个关于Node的简单问题。我正在尝试向Open Courseware搜索API(http://www.ocwsearch.com/api)发出一个简单的http请求,但是我遇到了一些实际解析JSON的问题...这通常不是问题。 请求返回一个带有转义字符和斜杠的字符串,因此我在响应字符串上运行了一个替换和一个unescape,但这最终会返回类似'[object Object]'的内容。现在,我真正想做的就是能够看到最终被返回的内容,所以我可以判断我是否可以最终将其解析为有效的JSON。不幸的是,这也没有用。我已经阅读了几个类似的堆栈溢出线程,但我仍然无法让它工作。

我尝试了什么:

  • 迭代正在传递的对象,因为我认为它是键值对并运行它,每次都记录它。但是,这会将其打印为字符串:

[

0

B'/ P>

...   一直到最后(])

将x作为返回的格式化对象,

这些似乎都不起作用,它们都归还给我[object Object]。

我甚至在jsfiddle中试过它:http://jsfiddle.net/S47QL/2/ 我正在用alert替换console.log,似乎是重新

我的代码:

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());$
  }$  
});$

1 个答案:

答案 0 :(得分:1)

  

现在,我真正想做的就是能够看到最终被返回的内容,所以我可以判断我是否可以最终将其解析为有效的JSON。

然后在浏览器窗口中发出请求(使用Chrome,您可以在检查器标签中看到实际结果 - 按F12键)。

示例:http://www.ocwsearch.com/api/v1/search.json?q=ios&contact=http%3a%2f%2fwww.ocwsearch.com%2fabout/

根据http://jsonlint.com/,这是有效的JSON返回。你肯定你是不是想要为自己的利益过于聪明?

您无法将响应写入字符串,因为它是一个对象。您需要返回的数据,但我认为body字段可以满足您的需求。您是否尝试过打印body