首页 > 解决方案 > 如何正确格式化我从 API 调用中获取的数据

问题描述

我作为最后的手段来找你们。所以基本上我正在使用jService API为危险游戏构建内部工作。所以基本上我的任务是调用 API/api/random并将 100 个类别 ID 收集到一个数组中。那很好,没问题。

let categories = [];
let categoryIDs = [];

async function getCategoryIds() {
    const res = await axios.get('http://jservice.io//api/categories?count=100');
    console.log(res.data)
    for (let cat of res.data) {
        categoryIDs.push(cat.id)
    }
    console.log(categoryIDs)
}

返回正是我需要的。我挣扎的地方是第二部分。现在对于每个类别 ID,我假设返回一个问题和答案列表,如下所示:

//  [
//    { title: "Math",
//      clues: [
//        {question: "2+2", answer: 4, showing: null},
//        {question: "1+1", answer: 2, showing: null}
//        ...
//      ],
//    },
//    { title: "Literature",
//      clues: [
//        {question: "Hamlet Author", answer: "Shakespeare", showing: null},
//        {question: "Bell Jar Author", answer: "Plath", showing: null},
//        ...
//      ],
//    },
//    ...
//  ]

这是我到目前为止所写的:

async function getCategory(categoryIDs) {
    const res2 = await axios.get("http://jservice.io/api/clues", {
        params: {
          category: 11603
        }
      });
    console.log(res2.data)
    console.log(res2.data[0].category.title + ':', res2.data[0].question, res2.data[0].answer)
    console.log(res2.data[1].category.title + ':', res2.data[1].question, res2.data[1].answer)
    console.log(res2.data[2].category.title + ':', res2.data[2].question, res2.data[2].answer)
    console.log(res2.data[3].category.title + ':', res2.data[3].question, res2.data[3].answer)
    console.log(res2.data[4].category.title + ':', res2.data[4].question, res2.data[4].answer)
}

而且我意识到,所有这些console.log都没有给我格式化我需要格式化的数据,我只是试图评估我是否真的可以提取数据并使用它。

我不在学校,这不是家庭作业,我也不是真的在寻找答案,只是想清楚。我有两个问题:1)只有一个函数调用,async function getCategory(categoryIDs)将 100 个单独的类别 ID 传递给我的查询参数以便返回所有类别的信息数组的最佳方法或正确方法是什么?什么是让我的数据结构化的最好方法,就像上面的例子一样。

谢谢你。

标签: javascriptgetaxios

解决方案


推荐阅读