使用Node JS在json文件中搜索

时间:2018-03-11 15:06:05

标签: javascript json node.js

我有几个像这样的对象,并想知道如何在这些之间进行搜索,比如说我们得到了数字1,并想知道这个名字是什么。 我应该循环它还是你们建议的?

为了清楚说明,我确实希望通过使用数字来获取其他对象。有可能吗?

    {
      "room": [
          {
              "number": "1",
              "name": "room1"
          },
          {
              "number": "2",
              "name": "room2"
          }
      ]
   }

3 个答案:

答案 0 :(得分:1)

首先,引入文件。确保在文件名前包含“./”,以显示它来自当前目录。

const data = require('./data.json');

现在JSON数据存储在变量data中。要访问成员,请使用点运算符。 data.room将返回房间数组。

要访问单个房间,请使用data.room[i],其中i是数组中的编号元素(从0开始)。例如,要访问第一个房间:

const first_room = data.room[0];

现在可以使用此first_room变量来访问该名称。

console.log(first_room.name);

这会将“room1”记录到控制台。

答案 1 :(得分:1)

您可以使用地图并使用房间号作为标识符。这样您就可以通过房间号码访问房间数据:



var data = {
    "room": [
        {
            "number": "1",
            "name": "room1"
        },
        {
            "number": "2",
            "name": "room2"
        }
    ]
};
// or load it from a file:
// var data = require('./data.json');
   
var rooms = new Map();
for(room of data.room) {
    rooms.set(Number(room.number), room);
}
// access data for room with number 1
alert(rooms.get(1).name);




答案 2 :(得分:0)

你可以试试这个。这对你有帮助。

var roomData =  {
      "room": [
          {
              "number": "1",
              "name": "room1"
          },
          {
              "number": "2",
              "name": "room2"
          }
      ]
   }
   
for(key in roomData.room){
  console.log("Room Number - " + roomData.room[key].number);
  console.log("Room Name - " + roomData.room[key].name);
}