class TourTask { late int sId; late int type; late String topic; bool? opt; bool? reenter; int? min; int? max; int? maxLen; bool? rt; bool? track; String? txt; int? taskArrival; int? taskFinWork; List? entries; TourTask(); factory TourTask.fromJson(Map json) { final task = TourTask(); task.sId = json['s_id'] as int; task.type = json['type'] as int; task.topic = json['topic'] as String; task.opt = json['opt'] as bool? ?? false; task.reenter = json['reenter'] as bool? ?? false; task.min = json['min'] as int?; task.max = json['max'] as int?; task.maxLen = json['max_len'] as int?; task.rt = json['rt'] as bool?; task.track = json['track'] as bool?; task.txt = json['txt'] as String?; task.taskArrival = json['task_arrival'] as int?; task.taskFinWork = json['task_fin_work'] as int?; task.entries = json['entries'] != null ? (json['entries'] as List) .map((e) => TourEntry.fromJson(e as Map)) .toList() : null; return task; } Map toJson() { return { 's_id': sId, 'type': type, 'topic': topic, 'opt': opt, 'reenter': reenter, 'min': min, 'max': max, 'max_len': maxLen, 'rt': rt, 'track': track, 'txt': txt, 'task_arrival': taskArrival, 'task_fin_work': taskFinWork, 'entries': entries?.map((e) => e.toJson()).toList(), }; } } class TourEntry { late int code; late String text; late bool queryRemark; TourEntry(); factory TourEntry.fromJson(Map json) { final entry = TourEntry(); entry.code = json['code'] as int; entry.text = json['text'] as String; entry.queryRemark = json['query_remark'] as bool; return entry; } Map toJson() { return { 'code': code, 'text': text, 'query_remark': queryRemark, }; } }