discord.js 将 .json 值导入变量

Posted

技术标签:

【中文标题】discord.js 将 .json 值导入变量【英文标题】:discord.js import .json values into variable 【发布时间】:2020-09-22 01:58:19 【问题描述】:

我将这些值作为一个非常基本的 xp 系统存储在 .json 中(我知道损坏问题,比如在迁移到 db 之前学习 json)

"267752827723492576":"xp":308,"level":1, "267752827723492576":"xp":308,"level":1

我想将用户 ID、xp 和级别导入到变量中,这样我就可以创建排行榜命令,我已经有了用于进行比较和排序的工作代码(如下)。 “用户”是包含我来自 json 文件的数据的变量

var users = 
    "":"xp":0,"level":0,
    "":"xp":0,"level":0,
    "":"xp":0,"level":0,
    "":"xp":0,"level":0,
    "":"xp":0,"level":0,
      ;

          let board = Object.entries(users)
                        .map(([key, val]) => (id: key, ...val))
                        .sort((a, b) => b.xp- a.xp);

          console.log(board);

【问题讨论】:

【参考方案1】:

post不清楚,就是不想导入json?

const users = require("path_to.json")

您也可以在JSON.parse 旁边使用fs.readFile

除了使用对象来存储数据,您还可以使用数组

使用这种格式:(使用 map 方法后的格式相同)

[ id: "", xp: 200, level: 2]

性能都有起有落,实际上通过 id 获取用户的对象可能更快,但由于您必须使用 Object.entriesmap 它可能会平衡

如果您确实切换到数组,以下是获取用户的方法

// ... just stands for data here, not the deconstructing or rest syntax
const json = [..., ...];
const user = json.find(f => f.id === "the-id-here");

【讨论】:

以上是关于discord.js 将 .json 值导入变量的主要内容,如果未能解决你的问题,请参考以下文章

无法导入 discord.js 打字稿

如何在 discord.js 代码块中对 json 对象值进行排序?

从json字符串中提取变量

Discord.js 基于 var 从 json 文件中获取数据

将 2 个 JSON 数组组合成成员角色 (DISCORD.JS)

如何将 JSON 数据嵌入到 discord.js 中