【问题标题】:How to wirite this Model如何编写此模型
【发布时间】:2021-06-02 14:50:22
【问题描述】:

我有一个这样的 JSON。因为 Crew 和其他的不一样,所以我不知道它的模型怎么写。喜欢工厂 xxxx.fromJson 谢谢

[
    {
      "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"]
        },
      ],
    },
    
  ]

【问题讨论】:

  • 为船员创建另一个模型
  • 你能给我一些示例代码吗?谢谢。@Niteesh
  • 是的,只是一个问题,您是否希望将整个 json 映射到单个模型。或者针对员工、设备、任务和工作人员的单独模型。
  • 你的话真的启发了我。我可以自己尝试构建单独的模型。我写了很多 JS 代码,所以我总是想迭代整个 JSON 字符串。这种想法(分离模型)是否意味着首先将 Json 分离到几个部分,然后迭代每个模型(员工、设备、任务、工作人员)?我不必映射到单个模型。此外,如果您可以编写一个模型,我将不胜感激。 @Niteesh
  • 我已经完成了,给你一个模型。

标签: flutter dart


【解决方案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 并获取任何语言的模型。

    但请记住,这是一种快速而懒惰的方式。我建议您阅读文档以了解如何设计模型

    【讨论】:

      猜你喜欢
      • 2021-02-06
      • 2020-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-03
      • 1970-01-01
      • 2016-02-07
      • 2018-02-18
      相关资源
      最近更新 更多