Я получаю ответ от бэкэнда:
{"measurements": {
"pm10": {
"name": "pm10",
"value": 20.8647,
"unit": "µg/m³"
},
"pm25": {
"name": "pm10",
"value": 20.8647,
"unit": "µg/m³"
},
"o2": {
"name": "pm10",
"value": 20.8647,
"unit": "µg/m³"
}
},
"station": {
"city": "{cityName}",
"name": "{locationName}",
"latitude": "54.353336",
"longitude": "18.635283"
}
}
Вот что я получил на данный момент:
class Pollutions {
Pollutions.fromJsonMap(Map<String, dynamic> map):
measurements = Measurements.fromJsonMap(map["measurements"]),
station = Station.fromJson(map["station"]);
Map<String, Pollution> measurements;
Station station;
Map<String, dynamic> toJson() {
final data = Map<String, dynamic>();
data['measurements'] = measurements == null ? null : measurements.jsonDecode(measurements);
data['station'] = station == null ? null : station.toJson();
return data;
}
}
и в измерениях я могу получить другие значения, и я ничего не знаю об их именах, это могут быть o2, o3, а не только pm10 и т. д. Могу ли я проанализировать эти измерения, чтобы сопоставить ключ-значение, где ключ будет pm10, что-то вроде что: Карта?
Как должны выглядеть методы Pollutions.fromJsonMap и toJson для карты?





Map<String, dynamic> data = jsonDecode(yourVariable);
Вы можете просто сделать это, используя декодер нестандартный из dart:convert
import 'package:http/http.dart' as http;
import 'dart:convert';
final response = await http.get(someEndPoint);
final Map<String, dynamic> data = json.decode(response.body);
Вышеприведенный ответ может дать ошибку, внутренняя связанная хеш-карта не является подтипом карты.
попробуйте это вместо этого:
Map<String, String> map = Map.castFrom(json.decode(jsonString))
Возможный дубликат Лучший способ разобрать JSON в Dart