(object Object) 从 Node 中的 JSON 请求返回

Posted

技术标签:

【中文标题】(object Object) 从 Node 中的 JSON 请求返回【英文标题】:(object Object) returning from JSON request in Node 【发布时间】:2012-06-19 04:31:52 【问题描述】:

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

我尝试过的:

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

[

o

b

... 一直到最后(])

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

使用 "" + x, toString(), 尝试将其转换为字符串 按照How do you log content of a JSON object in Node.js?使用console.log("%j", x)

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

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

我的代码:

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】:

现在,我真正想做的就是能够看到最终返回的内容,因此我可以判断我是否最终可以将其解析为有效的 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吗?

【讨论】:

你也可以遍历正文中的键,看看打印出来的内容 (for (var k in body) console.log(k) ) 哎呀,我太傻了。在深夜工作时,我有时将“body”替换为“response”......我可能应该更清楚,当我尝试打印返回的 json 时,它会在服务器上打印出大量的转义斜杠(它正在转义原始转义序列。例如,它正在返回“http:\\/\\/...”)。我试图删除它们,因为它不允许我直接调用属性,即使我将它们直接放入浏览器并且看起来很好。另外,上面我发布了我无法循环遍历它,尽管我认为这 只是我晚上很累,没有意识到我介于两者之间的某个地方将“body”变量更改为“response”,这并没有给我任何回报...... *没有返回我想看到的内容是的......这就是问题所在......我所要做的就是在 body 上运行所有内容,然后运行 ​​JSON.parse()在上面。我太傻了……谢谢! 很高兴你把它整理好了:D

以上是关于(object Object) 从 Node 中的 JSON 请求返回的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Node.js 的服务器端使用 Object.values()

vue中怎么获取object中的数据

来自 MySQL 数据库的查询在 node.js 和 JSON.stringify() 中返回 [Object] [Object] 似乎不起作用

Node sqlite node-gyp build error:'v8 :: Object'中没有名为'ForceSet'的成员

文档对象模型(Document Object Model--DOM)

如何在 Node.js console.log() 中获取完整对象,而不是“[Object]”?