2

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

我试过的:

  • 遍历正在传递的对象,因为我认为它会是带有键值对的东西,然后运行它,每次都记录它。但是,这会将其打印为字符串:

[

b

...一直到最后(])

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

但这些似乎都不起作用,它们都在返回我 [object Object]。

我什至在 jsfiddle 中尝试过:http: //jsfiddle.net/S47QL/2/ 我正在用警报替换 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());$
  }$  
});$
4

1 回答 1

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

于 2012-06-16T08:55:14.410 回答