[英]Json/Nodejs: How do I get specific data from a JSON file
我正在嘗試使用 nodejs 開發一個不和諧的機器人。 我的問題是如何從 JSON 文件中獲取特定數據(例如,從這個 json 。我只想指定一個像“59d4c622c7cc459a98c2e947054e2b11”這樣的 uuid 並獲取數據。
假設您已經將 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;
});
}
您可以使用過濾器的簡單解決方案。 最好是使用reduce。
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.