javascript - 如何使用 AJAX 方法将来自 Github Gist 的 JSON 数据存储到数组中?
问题描述
我正在尝试将 JSON 数据存储在一个变量中,然后随机访问它。(随机超级英雄名称)
JSON 数据是下面的 GitHub 要点
我正在尝试使用 ajax 方法(第一次),我认为它不起作用。我在控制台中变得不确定。
这是我的代码:
var namesData;
function getNames() {
return $.ajax({
headers: {
Accept: 'application/json'
},
url: 'https://gist.githubusercontent.com/abroroo/004fa0a28b94bc7100b4f1bf53acb69d/raw/09fd4ca4ed1ddb21010a48502cf0846a844b658c/authors.json',
success: function (jsonNames) {
namesData = JSON.parse(jsonNames);
console.log('namesData');
console.log(namesData);
}
});
}
这是获取随机名称的函数
function getRandomName() {
return namesData.names[
Math.floor(Math.random() * namesData.names.length)
];
}
console.log(getRandomName());
任何帮助表示赞赏!
解决方案
我检查了你的 gist json 文件,它有语法错误。原始json是
[
"names": [
{
"superhero":"Batman",
"publisher":"DC Comics",
"alter_ego":"Bruce Wayne",
"first_appearance":"Detective Comics #27",
"characters":"Bruce Wayne"
},
array
.so下不应该有键,所以像这样将根数组更改为 dict
{
"names": [
{
"superhero":"Batman",
"publisher":"DC Comics",
"alter_ego":"Bruce Wayne",
"first_appearance":"Detective Comics #27",
"characters":"Bruce Wayne"
},
推荐阅读
- android - 安卓:onResume()
- flutter - 在 Flutter 中自定义 Stepper
- pyspark - 在 Dataproc 上的 Anaconda venv 中导入 PySpark 错误
- android - 在构建或构建库时跳过 NDK 文件仅一次 Android Gradle
- lua - Squeegie 程序(使用 PeripheralsPlusOne 的 Thirsty Turtle)
- php - Laravel 在模型中获取 created_at 值
- python - Jupyter:内核似乎已经死了。它将自动重新启动。(Keras 相关)
- sql - SSIS:Excel 数据源 - 如果列不存在,则使用其他列
- python - 如何将网络摄像头用作pygame的屏幕?
- spring-webflux - 在 Eclipse 中,spring boot webflux websocket 应用程序作为 gradle boot 运行正确运行,但作为 spring boot 应用程序出错