Flutter中无需模型类解析JSON并获取单个值的方法
问题解决:Dart中直接解析JSON获取指定值
你的代码问题出在JSON路径错误——你试图从result字段里取USD,但实际上USD是嵌套在rates对象下的,result只是返回的状态字符串(值为"success"),这样访问肯定会报错。
修正后的代码如下:
void getCurrenciesRatesFromServer() { repository.getCurrenciesRates(selectedFromCountryCode).then((value) { var response = json.decode(value); // 先拿到rates对象,再取USD对应的值 double? usdRate = response['rates']['USD']; log("USD汇率:$usdRate"); }).onError((error, stackTrace) { log("$error"); }); }
额外说明:
- 如果你需要处理空安全,避免空指针异常,可以添加判断逻辑:
if (response.containsKey('rates') && response['rates'].containsKey('USD')) { double usdRate = response['rates']['USD']; log("USD汇率:$usdRate"); } else { log("未找到USD汇率数据"); } - 原代码里的
async是多余的,因为then回调中没有异步操作,直接去掉即可。
内容的提问来源于stack exchange,提问作者Syed Baber Mehmood
相关产品推荐
相关产品推荐

