如何解决如何在 Node.js
我试图在不显示所有子项的情况下串接一个大型 JSON 对象。例如,我的对象在某些地方大约有 20 层对象。
起初我使用 console.log(jsonObject)
完美输出我的对象。它会显示大约 3 层,然后如果有一个更低的物体,它会显示 [object Object]
。
我试图在不将结果记录到控制台而是将结果记录到字符串的情况下获得相同的效果。
我搜索了任何试图这样做的人,但有可能我不知道正确的搜索词,但我什么也没找到。我还寻找可以在没有运气的情况下处理此问题的库。我想我可以重写 JSON.stringify()
,但似乎应该有更简单的方法。
感谢阅读!
解决方法
您可以通过使用 inspect
标准库 (util documentation) 的 util
方法来实现这一点。这实际上是 console.log
在内部使用的,选项 depth
设置为 2
。
const util = require('util');
const json_object = {
"name": "StackOverflow","properties":{
"url":"https://stackoverflow.com/questions/67029935","users":{
"name":"Matt Vine","stats":{
"reputation": 51,"badges": 11
}
}
}
};
let string = util.inspect(json_object,{depth: 2})
这将产生以下字符串:
{ name: 'StackOverflow',properties:
{ url: 'https://stackoverflow.com/questions/67029935',users: { name: 'Matt Vine',stats: [Object] } } }
如果您想保留对象的“视觉”结构,您可以将 compact
选项设置为 false
。
let string = util.inspect(json_object,{depth: 2,compact: false})
给我们:
{
name: 'StackOverflow',properties: {
url: 'https://stackoverflow.com/questions/67029935',users: {
name: 'Matt Vine',stats: [Object]
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。