Swift中如何过滤API数据并在TableView展示(仅美股企业)
解决Finnhub Symbol Lookup API筛选美国股票数据的问题
核心解决方案
直接利用Finnhub API返回数据中的exchange字段做筛选,该字段会明确标注股票所属交易所,比通过错误信息过滤精准得多。只需判断该字段是否属于美国主流交易所标识即可。
代码修改示例
以下是关键逻辑的代码调整(以Swift为例,其他语言逻辑通用):
1. 数据模型定义
struct StockSymbol: Codable { let symbol: String let description: String let exchange: String // 新增交易所字段,用于筛选 }
2. 解析后筛选美国市场数据
// 假设已完成API请求与JSON解析,得到全量数据 let allSymbols: [StockSymbol] = 解析后的数据源 // 筛选美国主要交易所的数据,可根据需求补充其他美国交易所代码 let usStockSymbols = allSymbols.filter { ["US", "NYSE", "NASDAQ", "AMEX"].contains($0.exchange.uppercased()) } // 将筛选后的数据赋值给TableView数据源并刷新 yourTableViewDataSource = usStockSymbols yourTableView.reloadData()
排查要点
- 统一字段大小写:部分返回的
exchange值可能是小写,用uppercased()转换后再判断避免遗漏 - 确认API返回字段:先打印全量数据的
exchange值,确认美国市场的标识是否在你的筛选列表内 - 检查API权限:确保你的Finnhub API Key有权限访问Symbol Lookup接口
内容的提问来源于stack exchange,提问作者French Marigold
相关产品推荐
相关产品推荐

