我从后端得到响应:
{"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等,类似的东西:地图?映射的外观Pollutions.fromJsonMap
和toJson
方法应该如何?
您可以简单地通过使用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))
Map<String, dynamic> data = jsonDecode(yourVariable);