如何使复杂的Json适合Javascript对象

时间:2019-06-13 15:47:23

标签: javascript node.js json

我的webapp后端(用node.js编写)与Json文件交互,并且使用一种我认为不太复杂但显然很明显的特定格式。

我的json文件的结构如下:

{
    "data": [
      {
        "somefield": "ioremipsum",
        "somedate" : "2018-08-23T11:48:00Z",
        "someotherdate" : "2018-08-23T13:43:00Z",
        "somethingelse":"ioremipsum",
        "files": [
          {
            "specificfieldinarray": "ioremipsum",
            "specificotherfieldinarray": "ioremipsum"
          },
          {
            "specificfieldinarray": "ioremipsum",
            "specificotherfieldinarray": "ioremipsum"
          },
          {
            "specificfieldinarray": "ioremipsum",
            "specificotherfieldinarray": "ioremipsum"
          }
        ]
      }
    ]
  }

我试图使这个答案适合这样的JS对象:


const file =  require('specificJsonFile.json');

let fileList = file;

我需要遍历“文件”数组以进行进一步的处理,但不幸的是,我的JS对象看起来像这样:


{ data:
   [ { somefield: "ioremipsum",
       somedate : "2018-08-23T11:48:00Z",
       someotherdate : "2018-08-23T13:43:00Z",
       somethingelse:"ioremipsum",
       files: [Array] } ] }

如果这很明显,请原谅我,因为我仍然是JS的初学者。

4 个答案:

答案 0 :(得分:1)

这只是console.log记录深层对象的方式。要获得更深的输出,可以使用util.inspect

const util = require('util');
console.log(util.inspect(yourObject, {showHidden: false, depth: null}));

要循环播放每个数据的文件,只需先循环播放数据,然后循环播放文件

yourObject.data.forEach(d => {
    d.files.forEach(file => console.log(file));
});

答案 1 :(得分:1)

看来那里没什么问题,控制台正在缩写日志。

尝试使用以下代码访问文件列表:

const filesList = file.data[0].files

然后

console.log(filesList)来检查它是否最终可以正常工作。

希望有帮助!

答案 2 :(得分:-1)

let fileList = file.data[0].files;

这将创建仅包含文件数组的数组。

您可以console.log(fileList)

或您喜欢的数据。

根据您的评论,尝试使用in关键字而不是in关键字来获得预期的行为。

for (let file of fileList){
    console.log(file);
}

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of

答案 3 :(得分:-1)

您可以使用Route::resource('showrecord','ShowrecordController'); for

in