#flutter #dart
Вопрос:
У меня есть такой JSON. Поскольку команда отличается от других, я не знаю, как написать ее модель. как завод xxxx.От Json Спасибо
[
{
"Employee": [
"Employee A",
"Employee B",
"Employee C",
]
},
{
"Equipment": [
"Equipment 1",
"Equipment 2",
"Equipment 3",
]
},
{
"Task": ["Task a", "Task b", "Task c"]
},
{
"Crew": [
{
"crew_name": "Crew One",
"employee": ["Employee3"],
"equipment": ["Equipment2"]
},
{
"crew_name": "Crew Two",
"employee": ["Employee1", "Employee2"],
"equipment": ["Equipment1"]
},
],
},
]
Комментарии:
1. создайте еще одну модель для экипажа
2. Не могли бы вы дать мне какой-нибудь пример кода? Спасибо. @Нитиш
3. да, конечно, только один вопрос, вы хотите, чтобы весь json был сопоставлен с одной моделью. Или для отдельной модели для сотрудника, оборудования, задач и экипажа.
4. Твои слова действительно вдохновили меня. Я могу попробовать сам построить отдельные модели. Я пишу много кода JS, поэтому мне всегда хочется повторить всю строку JSON. Означает ли это мышление(отдельные модели) сначала разделить Json на несколько частей, а затем повторить каждую модель(сотрудник, оборудование, задачи, команда)? Мне не нужно сопоставлять с одной моделью. Более того, я был бы признателен, если бы вы могли написать одну модель. @Нитиш
5. Сделано, чем я поделился, модель для вас.
Ответ №1:
Вы можете использовать этот подход.
import 'dart:convert';
class Crew {
Crew({
this.crewName,
this.employee,
this.equipment,
});
String crewName;
List<String> employee;
List<String> equipment;
factory Crew.fromMap(Map<String, dynamic> json) => Crew(
crewName: json["crew_name"],
employee: List<String>.from(json["employee"].map((x) => x)),
equipment: List<String>.from(json["equipment"].map((x) => x)),
);
Map<String, dynamic> toMap() => {
"crew_name": crewName,
"employee": List<dynamic>.from(employee.map((x) => x)),
"equipment": List<dynamic>.from(equipment.map((x) => x)),
};
}
class CrewList {
CrewList({
this.crew,
});
List<Crew> crew;
factory CrewList.fromMap(Map<String, dynamic> json) => CrewList(
crew: List<Crew>.from(json["Crew"].map((x) => Crew.fromMap(x))),
);
Map<String, dynamic> toMap() => {
"Crew": List<dynamic>.from(crew.map((x) => x.toMap())),
};
}
CrewList crewListFromMap(String str) => CrewList.fromMap(json.decode(str));
String crewListToMap(CrewList data) => json.encode(data.toMap());
void main(){
String str = "{"Crew":[{"crew_name":"Crew One","employee":["Employee3"],"equipment":["Equipment2"]},{"crew_name":"Crew Two","employee":["Employee1","Employee2"],"equipment":["Equipment1"]}]}";
CrewList crewList = crewListFromMap(str);
print(crewListToMap(crewList));
}
Ответ №2:
Проверьте этот веб-сайт Quicktype. просто скопируйте и вставьте свой json и получите модели на любом языке.
Но помните, что это быстрый и ленивый способ сделать это. Я бы рекомендовал вам прочитать документацию, чтобы узнать, как проектировать модели