'Flutter Range Error: Invalid Value JSON call
When reading a JSON like this:
{
"altitude": 7,
"eoi_code": "08015021",
"last_calculated_at": "Sat, 30 Apr 2022 19:13:37 GMT",
"latitude": 41.443985,
"longitude": 2.2378986,
"name": "Badalona",
"pollutants": [],
"pollution": 0.24150975081597828,
"station_type": "background",
"urban_area": "urban"
}
There is an error: [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'FutureOr<List>' The JSON is not a Map. Here I show part of the code:
Future<List> getStation(String id) async {
final String url2 = url + id;
final response = await http.get(Uri.parse(url2));
if (response.statusCode == 200) {
return json.decode(response.body);
}
return [];
}
The call:
void getStation() async {
List tmp = await sj.getStation(widget.id);
if (mounted) {
setState(() {
station = tmp;
});
}
}
Solution 1:[1]
JSON is a map not a list.
Future<Map<String, dynamic>> getStation(String id) async {
final String url2 = url + id;
final response = await http.get(Uri.parse(url2));
if (response.statusCode == 200) {
return json.decode(response.body);
}
return {};
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | user18309290 |
