我有几个像这样的对象,并想知道如何在这些之间进行搜索,比如说我们得到了数字1,并想知道这个名字是什么。 我应该循环它还是你们建议的?
为了清楚说明,我确实希望通过使用数字来获取其他对象。有可能吗?
{
"room": [
{
"number": "1",
"name": "room1"
},
{
"number": "2",
"name": "room2"
}
]
}
答案 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);
}