javascript - 在线使用json
问题描述
嘿嘿!
所以,我正在尝试制作类似https://aws.random.cat/meow的东西,但是,当将我的代码与不和谐的机器人一起使用时,它不起作用..这让我想知道你是否可以在线托管 json 东西直接使用以下代码:
document.body.innerHTML = "<pre style=\"word-wrap: break-word; white-space: pre-wrap;\">{\"file\":\"https:\\/\\/"+domain+"\\/images\\/hug\\/"+item+"\"}</pre>";
此外,我的机器人代码是:
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);
});
})
我的网站运行良好,并且显示与https://aws.random.cat/meow中的完全一样但是,它仍然无法正常工作。请lmk如何或为什么会发生这种情况。
PS我没有在机器人代码中包含modules.export部分,我认为它是额外的。
PPS 以下是我当前的输出:这
谢谢!
解决方案
如果您想在端点上提供 JSON 格式的数据,只需提供 JSON 部分,无需将其放入 HTML。如果您将 JSON 像字符串一样放入 HTML 中,那么当您这样做时,get(<your url>)
您将获得带有嵌入 JSON 的整个 HTML 代码,因此response.file
不起作用。
https://aws.random.cat/meow显示为嵌入 HTML 的原因是浏览器检测到它是 JSON 文件,因此它会自动进行嵌入。当您尝试wget
在命令行上发出请求时,这是来自该 URL 的 RAW 响应:
$ wget https://aws.random.cat/meow --no-check-certificate
$ cat meow
{"file":"https:\/\/purr.objects-us-east-1.dream.io\/i\/935392_10151612620866211_62628372_n.jpg"}
如您所见,它周围没有 HTML。它是纯 JSON。
要验证是否确实如此,请记录您从 url 获得的响应:
get('https://example.com/kiss').then(response => {
console.log(response.body);
});
无关:还有人欣赏这里的cat meow
巧合吗?
推荐阅读
- c# - 将带有数字和字符串的字符串转换为 INT 值 C#
- spring-boot - '无法推断基本 url' Swagger-ui:Kubernetes 使用 Traefik 入口控制器
- angular - 以角度验证下拉菜单,如果从第二个下拉菜单中选择的值为是,则对第三个下拉菜单必须进行验证
- python - 如何沿批量维度广播 numpy 索引?
- python - Python中的冒号[:]代表什么类型的assignmnet?
- django - React BrowserRouter Route 不会改变 url
- json - TensorflowJS:无法解析 model.json
- java - 在 JSON 中断言该值为 null
- java - 在不打开 Web 浏览器页面的情况下使用 keycloack 的方法是什么?
- c++ - getNth() 堆栈中的项目