Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用Discord.js显示.JSON文件的内容?_Javascript_Node.js_Json_Discord.js - Fatal编程技术网

Javascript 如何使用Discord.js显示.JSON文件的内容?

Javascript 如何使用Discord.js显示.JSON文件的内容?,javascript,node.js,json,discord.js,Javascript,Node.js,Json,Discord.js,目前我的代码读取为 if(message.content.startsWith(前缀+'readback')){ fs.readFile('msgs.json',(err,data)=>{ 如果(错误)抛出错误; 让_msgs=JSON.parse(数据); message.channel.send(_msgs); console.log(_msgs) }); } 使用所有适当的常量和变量 使用prefix+'readback时,Discord Bot将\u msgs显示为[object ob

目前我的代码读取为

if(message.content.startsWith(前缀+'readback')){
fs.readFile('msgs.json',(err,data)=>{
如果(错误)抛出错误;
让_msgs=JSON.parse(数据);
message.channel.send(_msgs);
console.log(_msgs)
});
}
使用所有适当的常量和变量

使用
prefix+'readback
时,Discord Bot将
\u msgs
显示为
[object object]
——为了确保代码没有问题,我添加了
console.log(\u msgs)
,并且正确的JSON文件内容显示在控制台中。有没有办法让Bot在通道中显示JSON文件的内容

fs.readFile('msgs.json', (err, data) => {
  if (err) throw err;
  let _msgs = JSON.stringify(JSON.parse(data), null, 2);
   message.channel.send(_msgs);
   console.log(_msgs)
});
这将把JSON格式化为多行,带有两个空格的缩进

如果您这样做:

message.channel.send(data);
然后,您将获得JSON,但不带格式。

您可以利用它

与堆栈溢出一样,代码块可用于格式化代码,甚至添加颜色:

```json  
{
    "some": "json"
}
```
将呈现如下所示:
}

现在,正如Xander Kyle在评论中所说,您希望使用
JSON.stringify
作为
message.channel.send
使用
toString
将变量转换为字符串,而它对对象不起“您想要的”作用

fs.readFile('msgs.json',(err,data)=>{
if(err){throw err;}
const _msgs=JSON.stringify(JSON.parse(data),null,2);
message.channel.send('``json\n'+\u msgs+'\n``');
console.log(_msgs)
});

stringify中的
2
使json缩进()

这是我使用的代码,它将一个格式化为json的对象发送到通道

var msg='\``json\n{'
for(jsobj中的var键){
if(jsobj.hasOwnProperty(键)){
msg=msg+“\n\”“+key+”\:\”“+jsobj[key]+“\”,”
}                        
}
msg=msg.substring(0,msg.length-1)
msg=msg+“\n}\``”
message.channel.send(msg);
jsobj
变量将是您的JSON对象。

message.channel.send()使用toString()方法将MSG转换为字符串,该方法将为JSON对象返回类似[object object]的内容;您可能想尝试使用JSON.stringify()