我正在尝试使用nodejs开发一个不和谐的机器人。我的问题是如何从JSON文件中获取特定数据(例如,从this json中获取。我只想指定单个uuid(如“ 59d4c622c7cc459a98c2e947054e2b11”)并获取数据。
答案 0 :(得分:1)
假设您已将JSON解析为名为data
的实际Javascript对象,并给出了当前数据的组织方式,则必须搜索data.guild.members
数组以查找具有以下内容的对象:所需的uuid
属性值。
function findDataForUuid(uuid) {
for (let obj of data.guild.members) {
if (obj.uuid === uuid) {
return obj;
}
}
// no match found
return null;
}
let item = findDataForUuid("59d4c622c7cc459a98c2e947054e2b11");
if (item) {
console.log(item); // will show all the properties of the member object
}
或者,在数组上使用.find()
:
function findDataForUuid(uuid) {
return data.guild.members.find(item => {
return item.uuid === uuid;
});
}
答案 1 :(得分:0)
可以使用过滤器的简单解决方案。最好是减少使用。
const data = {
guild: {
_id: "5b2906070cf29ddccd0f203c",
name: "Dulcet",
coins: 122010,
coinsEver: 232010,
created: 1529415175560,
members: [
{
uuid: "59d4c622c7cc459a98c2e947054e2b11",
rank: "MEMBER",
joined: 1529683128302,
questParticipation: 39,
expHistory: {
"2020-02-16": 0,
"2020-02-15": 0,
"2020-02-14": 0,
"2020-02-13": 0,
"2020-02-12": 0,
"2020-02-11": 0,
"2020-02-10": 0
}
}
]
}
};
const members = data.guild.members.filter(
member => member.uuid == "59d4c622c7cc459a98c2e947054e2b11"
);
const firstMember = members[0]
console.log(firstMember)