#api #flutter #object #charts #flutter-dependencies
#API #флаттер #объект #Диаграммы #зависимости от флаттера
Вопрос:
Я пытаюсь изменить свой объект Map на list в Flutter, но я просто не знаю, где изменить код. Я попытался изменить его в файле диаграммы и файле модели, но это всегда выдает мне ошибку.
Вот как выглядит мой API:
{
"1": [
{
"tracked_at": "2020-11-29T17:33:42.000000Z",
"fuel": 71.05,
"level": 2.4867087,
"volume": 41671.1
},
{
"tracked_at": "2020-11-30T01:41:41.000000Z",
"fuel": 70.04,
"level": 2.451534,
"volume": 41031.36
},
{
"tracked_at": "2020-11-30T01:44:05.000000Z",
"fuel": 68.47,
"level": 2.396358,
"volume": 40015.56
},
{
"tracked_at": "2020-11-30T01:46:47.000000Z",
"fuel": 66.89,
"level": 2.341182,
"volume": 38985.96
},
{
"tracked_at": "2020-11-30T01:49:23.000000Z",
"fuel": 65.31,
"level": 2.286006,
"volume": 37943.9
},
],
"2": [
{
"tracked_at": "2020-11-30T01:37:17.000000Z",
"fuel": 70.71,
"level": 2.47481784,
"volume": 41455.55
},
{
"tracked_at": "2020-11-30T01:42:29.000000Z",
"fuel": 69.06,
"level": 2.41724224,
"volume": 40401.74
},
{
"tracked_at": "2020-11-30T01:44:33.000000Z",
"fuel": 67.52,
"level": 2.3630534400000003,
"volume": 39395.65
}
]
}
А вот как выглядит моя модель:
import 'dart:convert';
Map<String, List<TankPing>> tankPingFromJson(String str) => Map.from(json.decode(str)).map((k, v) => MapEntry<String, List<TankPing>>(k, List<TankPing>.from(v.map((x) => TankPing.fromJson(x)))));
String tankPingToJson(Map<String, List<TankPing>> data) => json.encode(Map.from(data).map((k, v) => MapEntry<String, dynamic>(k, List<dynamic>.from(v.map((x) => x.toJson())))));
class TankPing {
TankPing({
this.trackedAt,
this.fuel,
this.level,
this.volume,
});
DateTime trackedAt;
double fuel;
double level;
double volume;
factory TankPing.fromJson(Map<String, dynamic> json) => TankPing(
trackedAt: json["tracked_at"] == null ? null : DateTime.parse(json["tracked_at"]),
fuel: json["fuel"] == null ? null : json["fuel"].toDouble(),
level: json["level"] == null ? null : json["level"].toDouble(),
volume: json["volume"] == null ? null : json["volume"].toDouble(),
);
Map<String, dynamic> toJson() => {
"tracked_at": trackedAt == null ? null : trackedAt.toIso8601String(),
"fuel": fuel == null ? null : fuel,
"level": level == null ? null : level,
"volume": volume == null ? null : volume,
};
}
Буду признателен за любую помощь в том, где изменить и как изменить мою карту на список.
Ответ №1:
Вы можете использовать этот веб-сайт https://javiercbk.github.io/json_to_dart / чтобы преобразовать json в dart. Он автоматически преобразуется для меня. помимо этого вы можете использовать различные плагины для достижения результатов.
Комментарии:
1. Привет, я преобразовал JSON в объект dart, используя quicktype.io . Но прямо сейчас мне нужно преобразовать объект моей карты в объект списка. И прямо сейчас я не знаю, где написать этот код. Есть идеи, где написать код и как его изменить?
2. Карты и списки разные. Вы можете разделить их с помощью ключей и значений.