flutter - 在颤动中解析 JSON 到 Map
问题描述
我从后端得到响应:
{"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
方法应该如何?
解决方案
您可以通过使用开箱即用的解码器来简单地做到这一点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);
推荐阅读
- c++ - Visual Studio - C++ 新文件默认代码
- javascript - 在多个地方更新多个值的 React Context Provider
- javascript - 在while循环中检查数字的因子时获得无限循环
- gradle - 收集 Gradle 项目的依赖约束
- python - 在 Raspberry Pi 4 上使用 PyAudio 的 ALSA 错误
- excel - 如何在不使用 ColdFusion 下载的情况下生成 excel 文件 (xls) 并将其保存到服务器位置
- ruby - 卡在旧的 Ruby 版本(macOS)上
- php - 如何根据 wordpress 方法 get_post_meta() 的值向用户发送电子邮件?
- swift - 在 Swift 中:如何将最小的数字排序到最大?
- json - 如何将数据放入 Angular 中的嵌套 JSON 中?