我从后端得到回应:
{"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"
}
}
Run Code Online (Sandbox Code Playgroud)
这就是我此刻得到的:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
在测量中,我可以获得其他值,但我对它们的名称一无所知,可能是 o2、o3,不仅是 pm10 等。我可以解析此测量值以映射键值,其中键将是 pm10,例如那:地图?地图的外观Pollutions.fromJsonMap和toJson方法应该如何?
小智 11
上面的答案可能会给出错误内部链接哈希图不是 Map 的子类型。
试试这个:
Map<String, String> map = Map.castFrom(json.decode(jsonString))
Run Code Online (Sandbox Code Playgroud)
Mig*_*ivo 10
您可以简单地通过使用开箱即用的解码器来做到这一点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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15157 次 |
| 最近记录: |