首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >json解析对象

json解析对象
EN

Stack Overflow用户
提问于 2022-06-06 10:50:51
回答 2查看 55关注 0票数 -1

好的,我正试图用api获得某些值​​​​我能做的最大就是输出所有的json

代码语言:javascript
复制
  const api_url = 'https://api.battlemetrics.com/servers/3753675'
  async function getData() {
    const response = await fetch(api_url);
    const json = await response.json();
    const { data } = json;
    console.log(data)
  }
  getData();

请告诉我如何得到元素,我试过这样做:

代码语言:javascript
复制
  const api_url = 'https://api.battlemetrics.com/servers/3753675'
  async function getData() {
    const response = await fetch(api_url);
    const json = await response.json();
    const { name, id, status } = json;
    console.log(name, id, status)
  }
  getData();

但我得到了“未定义,未定义,未定义”

我要的对象是:

代码语言:javascript
复制
{"data":{"type":"server","id":"3753675","attributes":{"id":"3753675","name":"Rusticated.com Sandbox - Creative | Minigames | Bedwars\r","address":null,"ip":"199.231.233.240","port":28015,"players":201,"maxPlayers":1000,"rank":1,"location":[-87.618889,41.875744],"status":"online","details":{"official":false,"rust_type":"modded","map":"BuildBattleArenaScrimGames","environment":"w","rust_ent_cnt_i":0,"rust_fps":43680,"rust_fps_avg":43680,"rust_gc_cl":null,"rust_gc_mb":null,"rust_hash":"","rust_headerimage":"https://cdn.discordapp.com/attachments/811789078105554984/832668733184671754/Rusticated_Mini_Games_Banner_512x256.png","rust_mem_pv":null,"rust_mem_ws":null,"pve":false,"rust_uptime":null,"rust_url":"https://rustminigames.com","rust_world_seed":1337,"rust_world_size":null,"rust_description":"Rusticated Minigames Beta \n Bedwars \n Creative \n GunGame \n Targets \n More Coming Soon...","rust_modded":true,"rust_queued_players":0,"rust_born":"2022-06-05T00:00:00.000Z","rust_last_ent_drop":"2021-08-06T00:10:18.261Z","rust_last_seed_change":"2020-09-03T18:33:52.047Z","rust_last_wipe":"2021-08-06T00:10:18.261Z","rust_last_wipe_ent":29035,"serverSteamId":"90159726978107400"},"private":false,"createdAt":"2019-06-18T18:35:26.890Z","updatedAt":"2022-06-06T10:05:57.516Z","portQuery":28038,"country":"US","queryStatus":"valid"},"relationships":{"game":{"data":{"type":"game","id":"rust"}}}},"included":[]}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-06 10:58:52

只需将:const { name, id, status } = json;替换为:

代码语言:javascript
复制
  const {
    data: {
      id,
      attributes: { name, status }
    }
  } = json;

因为您的键不是直接进入响应,而是嵌套的。

票数 -1
EN

Stack Overflow用户

发布于 2022-06-06 11:03:34

如果你想得到你说的目标,试试这个。

代码语言:javascript
复制
const API_URL = 'https://api.battlemetrics.com/servers/3753675';

async function getData() {
  const response = await fetch(API_URL);
  const json = await response.json();
  console.log(json);  // you need to check json first. (*)
}

getData();

那你就可以使用毁灭。

代码语言:javascript
复制
const API_URL = 'https://api.battlemetrics.com/servers/3753675';

async function getData() {
  const response = await fetch(API_URL);
  const json = await response.json();
  const { name, id, status } = json.data.attributes; // (*)
  console.log(name, id, status);
}

getData();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72516568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档