You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从API字段提取指定数据?筛选Rest Countries API获取195个国家

筛选主权国家的实现方法

REST Countries返回的249个条目里包含了主权国家、海外属地、争议地区、特殊行政区等非主权实体,你可以通过以下两种方案筛选出需要的195个主权国家:

方案1:API层面直接过滤(推荐)

REST Countries V3.1及以上版本支持按status字段筛选,仅拉取联合国官方正式承认的主权国家,返回结果刚好匹配195个的常规统计范围,能减少返回数据量,请求示例如下:

import { useState, useEffect } from 'react'

function CountryList() {
  const [countries, setCountries] = useState([])

  useEffect(() => {
    // status=officially-assigned 就是主权国家过滤参数,后面fields可以按需指定要返回的字段
    fetch('https://restcountries.com/v3.1/all?status=officially-assigned&fields=name,cca2,flag,population')
      .then(res => res.json())
      .then(data => setCountries(data))
  }, [])

  // 渲染列表逻辑
  return (
    <ul>
      {countries.map(country => (
        <li key={country.cca2}>{country.name.common} {country.flag}</li>
      ))}
    </ul>
  )
}

方案2:本地二次校验(100%对齐你指定的列表)

如果需要完全匹配你参考的195国列表,避免个别国家认定标准的差异,可以提前整理好目标国家的二位国家代码(CCA2代码,比如中国是CN、美国是US),拿到API返回数据后做本地过滤:

// 把你需要的195个国家的CCA2代码全部填入这个数组即可
const TARGET_COUNTRY_CODES = ['CN', 'US', 'JP', 'KR', 'GB', 'FR' /* 补全剩余189个代码 */]

// 过滤逻辑
const filteredCountries = allCountries.filter(country => TARGET_COUNTRY_CODES.includes(country.cca2))

小提示

如果你还在使用V2版本的REST Countries,没有status过滤参数,直接用方案2的本地过滤逻辑即可,CCA2代码是全球统一的,不会随API版本变动。

内容的提问来源于stack exchange,提问作者bexarKnuckles

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 19:15:07