Как использовать эту модель

#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 и получите модели на любом языке.

Но помните, что это быстрый и ленивый способ сделать это. Я бы рекомендовал вам прочитать документацию, чтобы узнать, как проектировать модели