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

Flutter中如何通过匹配两个API的JSON响应获取指定字段内容

职位查询匹配实现方案

我有两类API,一类返回所有已发布职位的响应,另一类返回用户已申请职位的响应。我的实现思路是先将所有职位的响应存入列表,再将已申请职位的jobID存储为int类型变量,通过for循环匹配索引与jobID即可获取对应的职位名称。

获取所有职位响应的方法

List<String> allJobsList = [];
Future<List<dynamic>> getAllJobsData() async {
  String url = 'https://hospitality92.com/api/jobsbycategory/All';
  var response = await http.get(Uri.parse(url), headers: {
    'Content-Type': 'application/json',
    'Accept': 'application/json',
  });
  allJobsList.add(json.decode(response.body)['jobs'].toString()); // 所有职位响应将被添加到该列表中
  
  return json.decode(response.body)['jobs'];
}

获取用户已申请职位的方法

Future<List<dynamic>> getUSerAppliedJobs() async {
  String url = 'https://hospitality92.com/api/getappliedjobs/10'; // 这里的10为用户ID
  var response = await http.get(Uri.parse(url), headers: {
    'Content-Type': 'application/json',
    'Accept': 'application/json',
  });
  return json.decode(response.body)['jobs']; // 返回用户已申请的职位列表
}

匹配jobID获取职位名称的实现逻辑

上述两个方法用于通过匹配jobID获取职位名称,我将使用FutureBuilder获取响应并在ListView中展示,代码如下:

ListView.builder(
  padding: EdgeInsets.zero,
  shrinkWrap: true,
  itemCount: snapshot.data?.length,
  itemBuilder: (context, index) {
    var jobID = int.parse(snapshot.data![index]['job_id']) ;                      
    var getJobName = "";
    for (int i = 0; i <= allJobsList.length; i++) {
      if (i == jobID) {
        var jobName = allJobsList.elementAt(i-2);
        getJobName = jobName;
        print(getJobName); 
        break;
      }
    }
  },
),

内容的提问来源于stack exchange,提问作者Usama Hafeez Official

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 14:36:04