首页 > 解决方案 > 如何仅从带有“RANKED_SOLO_5x5”而不是“RANKED_FLEX_SR”的json部分获取信息(“tier”、“rank”、“leaguePoints”)

问题描述

json

[
  {
    leagueId: "51f35167-0e62-41b0-bb5d-8ec376e754d7",
    queueType: "RANKED_FLEX_SR",
    tier: "GOLD",
    rank: "II",
    summonerId: "YZ9wH1Bldkndu5YnBb9cYn5corkcU_rDCVsVEaHDttelCVg",
    summonerName: "Impermanencë",
    leaguePoints: 1,
    wins: 7,
    losses: 5,
    veteran: false,
    inactive: false,
    freshBlood: false,
    hotStreak: false,
  },
  {
    leagueId: "0e4412d1-81c2-4839-9045-c0cb556ebdcb",
    queueType: "RANKED_SOLO_5x5",
    tier: "PLATINUM",
    rank: "III",
    summonerId: "YZ9wH1Bldkndu5YnBb9cYn5corkcU_rDCVsVEaHDttelCVg",
    summonerName: "Impermanencë",
    leaguePoints: 75,
    wins: 222,
    losses: 205,
    veteran: false,
    inactive: false,
    freshBlood: false,
    hotStreak: false,
  },
];
function RANKFIND(league_ign) {
var tempign = "Impermanencë"
var apirequest1 = "https://na1.api.riotgames.com/lol/summoner/v4/summoners/by-name/"
var apirequest2 = "?api_key={KEYVALUE}"
var idapirequest = (apirequest1 + tempign + apirequest2)
Logger.log(idapirequest);
var response = UrlFetchApp.fetch(idapirequest);
var content = response.getContentText();
Logger.log(content)
var json = JSON.parse(content)
var id = json["id"]
Logger.log(id);

var tempid = "YZ9wH1Bldkndu5YnBb9cYn5corkcU_rDCVsVEaHDttelCVg"
var apirequest3 = "https://na1.api.riotgames.com/lol/league/v4/entries/by-summoner/"
var apirequest4 = "?api_key={KEYVALUE}"
var apirequestfull = (apirequest3 + id + apirequest4)
var response = UrlFetchApp.fetch(apirequestfull);
var content = response.getContentText();
var json2 = JSON.parse(content)
Logger.log(json2);
var json3 = json2[0]
var tier = json3["tier"];
var rank = json3["rank"];
var league_points = json3["leaguePoints"];
var full_rank = (tier+ "," + rank + " " + league_points + "lp")
Logger.log(full_rank)
return full_rank
}

标签: javascriptjson

解决方案


如果您知道 arr 中对象的索引并且知道它不会更改,那么您可以使用index来获取对象然后对其进行解构

const { tier, rank, leaguePoints } = arr[1];
console.log(tier, rank, leaguePoints);

const arr = [
  {
    leagueId: "51f35167-0e62-41b0-bb5d-8ec376e754d7",
    queueType: "RANKED_FLEX_SR",
    tier: "GOLD",
    rank: "II",
    summonerId: "YZ9wH1Bldkndu5YnBb9cYn5corkcU_rDCVsVEaHDttelCVg",
    summonerName: "Impermanencë",
    leaguePoints: 1,
    wins: 7,
    losses: 5,
    veteran: false,
    inactive: false,
    freshBlood: false,
    hotStreak: false,
  },
  {
    leagueId: "0e4412d1-81c2-4839-9045-c0cb556ebdcb",
    queueType: "RANKED_SOLO_5x5",
    tier: "PLATINUM",
    rank: "III",
    summonerId: "YZ9wH1Bldkndu5YnBb9cYn5corkcU_rDCVsVEaHDttelCVg",
    summonerName: "Impermanencë",
    leaguePoints: 75,
    wins: 222,
    losses: 205,
    veteran: false,
    inactive: false,
    freshBlood: false,
    hotStreak: false,
  },
];

const { tier, rank, leaguePoints } = arr[1];
console.log(tier, rank, leaguePoints);

否则你需要使用find来获取元素然后解构。

const obj = arr.find((o) => o.queueType === "RANKED_SOLO_5x5");
const { tier, rank, leaguePoints } = obj;
console.log(tier, rank, leaguePoints);

const arr = [
  {
    leagueId: "51f35167-0e62-41b0-bb5d-8ec376e754d7",
    queueType: "RANKED_FLEX_SR",
    tier: "GOLD",
    rank: "II",
    summonerId: "YZ9wH1Bldkndu5YnBb9cYn5corkcU_rDCVsVEaHDttelCVg",
    summonerName: "Impermanencë",
    leaguePoints: 1,
    wins: 7,
    losses: 5,
    veteran: false,
    inactive: false,
    freshBlood: false,
    hotStreak: false,
  },
  {
    leagueId: "0e4412d1-81c2-4839-9045-c0cb556ebdcb",
    queueType: "RANKED_SOLO_5x5",
    tier: "PLATINUM",
    rank: "III",
    summonerId: "YZ9wH1Bldkndu5YnBb9cYn5corkcU_rDCVsVEaHDttelCVg",
    summonerName: "Impermanencë",
    leaguePoints: 75,
    wins: 222,
    losses: 205,
    veteran: false,
    inactive: false,
    freshBlood: false,
    hotStreak: false,
  },
];

const obj = arr.find((o) => o.queueType === "RANKED_SOLO_5x5");
const { tier, rank, leaguePoints } = obj;
console.log(tier, rank, leaguePoints);


推荐阅读