嵌套的 JSON 对象在 NodeJS 中返回 [Object] [重复]

Posted

技术标签:

【中文标题】嵌套的 JSON 对象在 NodeJS 中返回 [Object] [重复]【英文标题】:Nested JSON objects returns [Object] in NodeJS [duplicate] 【发布时间】:2018-12-17 12:22:28 【问题描述】:

我只是想从 json 数组中读取 json 对象。但是在尝试读取整个数组时,我得到了 [Object] 来代替嵌套的 Json 对象。

我的 JSON 如下所示:

var json = 
  "root_id": [
    
      "child-id1": 
        "name": "name1",
        "created_by": null,
        "created_at": "2018-05-30T19:34:38.657Z",
        "configs": 
          "generic": 
            "size": 1000,
            "timeout": 60,
            "field1_key": "field1_value"
          ,
          "specific": 
            "key1": "xxx-xxx",
            "field1_key": "field1_value"
          
        
      
    ,
    
      "child-id2": 
        "name": "name2",
        "created_by": null,
        "created_at": "2018-05-30T19:34:38.657Z",
        "configs": 
          "generic": 
            "size": 10,
            "timeout": 60,
            "field1_key": "field1_value"
          ,
          "specific": 
            "key1": "xxx-xxx",
            "field1_key": "field1_value"
          
        
      
    
  ]

我希望我的函数返回“root_id”对象的 Json 数组。所以,我只是尝试了这个简单的代码来读取数组:

var val = json['root_id'];
console.log(val);

但它会返回这个:

[  'child-id1': 
      name: 'name1',
       created_by: null,
       created_at: '2018-05-30T19:34:38.657Z',
       configs: [Object]  ,
   'child-id2': 
      name: 'name2',
       created_by: null,
       created_at: '2018-05-30T19:34:38.657Z',
       configs: [Object]   ]

我如何确保嵌套对象按原样返回,而不仅仅是 [object]

【问题讨论】:

这是它返回的内容还是console.log 显示的内容?如果您想在控制台中显示所有内容,请 JSON.stringify 它。 console.log 显示[Object] 当对象向下三层时。您可以使用console.log(JSON.stringify(yourObject)),这可能会显示整个 JSON。 console.log(util.inspect(val, compact: true, depth: 15, breakLength: 80 )); 【参考方案1】:

如果你在服务器中使用这个console.log,你应该使用util.inspect(),https://nodejs.org/api/util.html

检查这个问题:How can I get the full object in Node.js's console.log(), rather than '[Object]'?

如果您在浏览器中使用它应该会显示所有内容。

【讨论】:

【参考方案2】:

试试

var json = 
  "root_id": [
    
      "child-id1": 
        "name": "name1",
        "created_by": null,
        "created_at": "2018-05-30T19:34:38.657Z",
        "configs": 
          "generic": 
            "size": 1000,
            "timeout": 60,
            "field1_key": "field1_value"
          ,
          "specific": 
            "key1": "xxx-xxx",
            "field1_key": "field1_value"
          
        
      
    ,
    
      "child-id2": 
        "name": "name2",
        "created_by": null,
        "created_at": "2018-05-30T19:34:38.657Z",
        "configs": 
          "generic": 
            "size": 10,
            "timeout": 60,
            "field1_key": "field1_value"
          ,
          "specific": 
            "key1": "xxx-xxx",
            "field1_key": "field1_value"
          
        
      
    
  ]

 
var count = Object.keys(json['root_id']).length;
for (var i = 0; i < count; i++) 
    console.log(json['root_id'][i]);

【讨论】:

以上是关于嵌套的 JSON 对象在 NodeJS 中返回 [Object] [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何将 NodeJs 响应转换为嵌套的 json 响应

如何从通过 Moya.Response 查询返回的对象解析嵌套的 JSON 数组

Flutter 从 Json 转换嵌套对象返回 null

显示从 Nodejs 到 EJS 的嵌套 JSON

如何使用 RestKit 将嵌套的 JSON 对象存储到核心数据中

如何在 C# 中使用嵌套的 json 对象