javascript - 如何在 Node JS 中打印对象

标签 javascript json node.js

在下面的代码中(在 Node JS 上运行)我试图使用 JSON.stringify 打印从外部 API 获得的对象,这会导致错误:

TypeError: Converting circular structure to JSON

我已经查看了有关此主题的问题,但没有任何帮助。有人可以建议吗:

a) 如何从 res 对象中获取 country 值?

b) 如何打印整个对象本身?

  http.get('http://ip-api.com/json', (res) => {     
    console.log(`Got response: ${res.statusCode}`);
    console.log(res.country)  // *** Results in Undefined
    console.log(JSON.stringify(res)); // *** Resulting in a TypeError: Converting circular structure to JSON

    res.resume();
  }).on('error', (e) => {
    console.log(`Got error: ${e.message}`);
  });

最佳答案

基本 console.log 不会遍历又长又复杂的对象,可能决定只打印 [Object]

在 node.js 中防止这种情况的一个好方法是使用 util.inspect:

'use strict';
const util = require('util'),
    obj = /*Long and complex object*/;

console.log(util.inspect(obj, {depth: null}));
//depth: null tell util.inspect to open everything until it get to a circular reference, the result can be quite long however.

编辑:在紧要关头(例如在 REPL 中),第二个选项是 JSON.stringify。不需要 require 它,但它会在循环引用时中断,而不是打印存在引用的事实。

关于javascript - 如何在 Node JS 中打印对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38768567/

相关文章:

javascript - 如何仅获取与特定值匹配的json

node.js - 如何解决以下 easyrtc 问题?

javascript - 如何让现有的 jQuery 选择将 html 作为字符串插入到 div 中

javascript - 遍历包含数组的 JSON 对象包含包含数组的对象包含等

javascript - 从数组内部的对象获取属性值

json - 如何在 PowerShell 中解析来自 Invoke-WebRequest 的 JSON?

node.js - 如何删除 express js 服务器中超过 24 小时的 Mongoose 文档?

javascript - React-Native 将两个数组合并为一个

python - 如何在 json 文件中基于 "keys"创建 Pandas DF 列?

json - Sproutcore和JSON数据