Javascript 在线使用json

Javascript 在线使用json,javascript,html,json,discord.js,Javascript,Html,Json,Discord.js,嗨 所以,我试图做一些事情,但是,当我的代码与discord机器人一起使用时,它不起作用。。我想知道您是否可以使用以下代码直接在线托管json内容: document.body.innerHTML = "<pre style=\"word-wrap: break-word; white-space: pre-wrap;\">{\"file\":\"https:\\/\\/"+domain+"\\/imag

所以,我试图做一些事情,但是,当我的代码与discord机器人一起使用时,它不起作用。。我想知道您是否可以使用以下代码直接在线托管json内容:

document.body.innerHTML = "<pre style=\"word-wrap: break-word; white-space: pre-wrap;\">{\"file\":\"https:\\/\\/"+domain+"\\/images\\/hug\\/"+item+"\"}</pre>";
我的网站运行得很好,显示的和中的完全一样,但仍然不起作用。请告诉我这是怎么发生的或为什么发生的

另外,我没有在bot代码中包含modules.export部分,因为我认为这是额外的

p.p.S以下是我当前的输出:


谢谢

如果希望在端点上以JSON格式提供数据,那么只需提供JSON部分,无需将其放入HTML中。如果您将JSON像字符串一样放入HTML中,那么当您执行
get()
操作时,您将使用嵌入的JSON获得整个HTML代码,因此
response.file
无法工作

之所以显示为嵌入在HTML中,是因为浏览器检测到它是一个JSON文件,因此它会自动进行嵌入。以下是当您尝试在命令行上使用
wget
发出请求时来自该URL的原始响应:

$wgethttps://aws.random.cat/meow --无支票证明
$cat喵喵
{“文件”:“https:\/\/purr.objects-us-east-1.dream.io\/i\/935392_10151612620866211_62628372_n.jpg”}
正如您所看到的,它周围没有HTML。它是纯JSON

要验证是否确实如此,请记录从url获得的响应:

get('https://example.com/kiss)。然后(响应=>{
console.log(response.body);
});

无关:其他人欣赏这里的
cat meow
巧合吗?

你指的是什么json?{“文件”:“whatever”}部分(参考图片)请不要假设人们可以从图片中读取代码。考虑编辑问题,并把它作为文本?代码包含在那里作为文本。图像就是输出(我在那里写到,我当前的输出就是图像,请阅读P.P.S)。如果你没有正确阅读问题,请不要做出任何不是JSON的假设。这是一个HTML元素,包含包含JSON的文本。是否尝试删除
pre
元素?如果您尝试使用
JSON.parse
解析文档正文,它将失败。等等,因此,我删除了document.body.innerHTML部分中的前置部分。但是,当我记录response.body时,我得到了以下信息:
soo。。。有什么想法吗?试试
console.log(response.body.toString())
。看起来它是一个需要转换的缓冲区-。或者,您是否尝试过对url执行
wget
?我将您的十六进制输出放在一个十六进制->字符串转换器中,我可以看到它仍然是HTML代码。我刚刚意识到它必须是response.body.file,因为它在json值“file”中。显然,我只得到一个未定义的响应:((我没有尝试wget,因为我使用的是windows,powershell不想与我一起使用..我还可以发送链接:)这是您的url返回的内容:。正如我所说,这是HTML,因此您不能像访问JSON一样访问它。与其使用HTML文件,不如将您的JSON数据作为.JSON文件上载,然后使用该文件的url
const { MessageEmbed } = require('discord.js');
const axios = require('axios');
const {get} = require("snekfetch");

const embed = new MessageEmbed()
        .setColor("RANDOM")
        .setTitle("thingie")
        .setDescription("Loading...")
message.channel.send(embed).then(msg => {
    get('https://example.com/kiss').then(response => {
        setTimeout(function(){ 
            embed.setDescription("")
            embed.setImage(response.body.file)
            msg.edit(embed)
        }, 1500);
    });
})