无法在 Flutter 中访问我的 json 数据,它总是 returns 我的数据的空值
Can't access my json data in Flutter, It always returns a Nullvalue for my data
求助,我很笨。我遇到了问题,我无法在我的 FutureBuilder 中访问我的 JSON 数据,我的 FutureBuilder 中总是会得到一个 Null 值。由于 Nullsafety,我没有收到错误。请帮忙。
FutureBuilder<List<Analysts>>(
future: iexcloudanalysts.getData(),
builder: (context, snapshot) {
if (snapshot.hasData) {
Analysts analysts = Analysts();
return Text(
analysts.consensusDate ?? 'Error',
style: TextStyle(
color: Colors.white,
fontSize: 32,
fontWeight: FontWeight.bold,
),
);
}
这是我的分析师模型:
class Analysts {
final String analystCount;
final String consensusDate;
final String marketConsensus;
final String marketConsensusTargetPrice;
Analysts({this.analystCount, this.consensusDate, this.marketConsensus,
this.marketConsensusTargetPrice,});
factory Analysts.fromJson(Map<String, dynamic> json) {
return Analysts(
analystCount: json['analystCount'].toString() as String,
consensusDate: json['consensusDate'] as String,
marketConsensus: json['marketConsensus'].toString() as String,
marketConsensusTargetPrice: json['marketConsensusTargetPrice'].toString() as String,
);
}
}
这是我的云服务:
class IEXCloudServiceAnalysts {
Future<List<Analysts>> getData() async{
var url = Uri.parse("https://sandbox.iexapis.com/stable/time-series/CORE_ESTIMATES/TSLA?token=Tpk_85b3b5cdb32147d3a0fb751cc5176cdd");
Response res = await get(url);
return parseAnalysis(res.body);
}
}
List<Analysts> parseAnalysis(String responseBody) {
final parsed = jsonDecode(responseBody).cast<Map<String, dynamic>>();
return parsed.map<Analysts>((json) => Analysts.fromJson(json)).toList();
}
使用snapshot.data![0]?.consensusDate
代替analysts.consensusDate
求助,我很笨。我遇到了问题,我无法在我的 FutureBuilder 中访问我的 JSON 数据,我的 FutureBuilder 中总是会得到一个 Null 值。由于 Nullsafety,我没有收到错误。请帮忙。
FutureBuilder<List<Analysts>>(
future: iexcloudanalysts.getData(),
builder: (context, snapshot) {
if (snapshot.hasData) {
Analysts analysts = Analysts();
return Text(
analysts.consensusDate ?? 'Error',
style: TextStyle(
color: Colors.white,
fontSize: 32,
fontWeight: FontWeight.bold,
),
);
}
这是我的分析师模型:
class Analysts {
final String analystCount;
final String consensusDate;
final String marketConsensus;
final String marketConsensusTargetPrice;
Analysts({this.analystCount, this.consensusDate, this.marketConsensus,
this.marketConsensusTargetPrice,});
factory Analysts.fromJson(Map<String, dynamic> json) {
return Analysts(
analystCount: json['analystCount'].toString() as String,
consensusDate: json['consensusDate'] as String,
marketConsensus: json['marketConsensus'].toString() as String,
marketConsensusTargetPrice: json['marketConsensusTargetPrice'].toString() as String,
);
}
}
这是我的云服务:
class IEXCloudServiceAnalysts {
Future<List<Analysts>> getData() async{
var url = Uri.parse("https://sandbox.iexapis.com/stable/time-series/CORE_ESTIMATES/TSLA?token=Tpk_85b3b5cdb32147d3a0fb751cc5176cdd");
Response res = await get(url);
return parseAnalysis(res.body);
}
}
List<Analysts> parseAnalysis(String responseBody) {
final parsed = jsonDecode(responseBody).cast<Map<String, dynamic>>();
return parsed.map<Analysts>((json) => Analysts.fromJson(json)).toList();
}
使用snapshot.data![0]?.consensusDate
代替analysts.consensusDate