如何在dart中将Json转换为模型类?

GHU*_*sen 2 json dart flutter

我也尝试使用许多在线转换器将下面的 json 转换为 dart 类。但是当我实现该代码时,该代码不起作用并给我一些错误。

\n

格式:

\n
{\n    "sections": [\n        {\n            "id": "863",\n            "title": "\xd8\xa7\xd9\x84\xd9\x81\xd8\xb5\xd9\x84 \xd8\xa7\xd9\x84\xd8\xa7\xd9\x88\xd9\x84 (1)",\n            "course_id": 110011,\n            "description": "",\n            "order": "2",\n            "percent": 16.666666666666664,\n            "items": [\n                {\n                    "id": 110167,\n                    "type": "lp_quiz",\n                    "title": "\xd8\xa7\xd9\x84\xd8\xa5\xd8\xae\xd8\xaa\xd8\xa8\xd8\xa7\xd8\xb1",\n                    "preview": false,\n                    "duration": "01 hours",\n                    "graduation": "failed",\n                    "status": "completed",\n                    "locked": false\n                }\n            ]\n        }\n    ]\n}\n
Run Code Online (Sandbox Code Playgroud)\n

小智 9

你可以使用这个网站隐藏它,我总是使用它并且工作正常这是转换为dart 类后的 json 代码:

import 'dart:convert';

ModelClass modelClassFromJson(String str) => ModelClass.fromJson(json.decode(str));

String modelClassToJson(ModelClass data) => json.encode(data.toJson());

class ModelClass {
    ModelClass({
        this.sections,
    });

    List<Section> sections;

    factory ModelClass.fromJson(Map<String, dynamic> json) => ModelClass(
        sections: List<Section>.from(json["sections"].map((x) => Section.fromJson(x))),
    );

    Map<String, dynamic> toJson() => {
        "sections": List<dynamic>.from(sections.map((x) => x.toJson())),
    };
}

class Section {
    Section({
        this.id,
        this.title,
        this.courseId,
        this.description,
        this.order,
        this.percent,
        this.items,
    });

    String id;
    String title;
    int courseId;
    String description;
    String order;
    double percent;
    List<Item> items;

    factory Section.fromJson(Map<String, dynamic> json) => Section(
        id: json["id"],
        title: json["title"],
        courseId: json["course_id"],
        description: json["description"],
        order: json["order"],
        percent: json["percent"].toDouble(),
        items: List<Item>.from(json["items"].map((x) => Item.fromJson(x))),
    );

    Map<String, dynamic> toJson() => {
        "id": id,
        "title": title,
        "course_id": courseId,
        "description": description,
        "order": order,
        "percent": percent,
        "items": List<dynamic>.from(items.map((x) => x.toJson())),
    };
}

class Item {
    Item({
        this.id,
        this.type,
        this.title,
        this.preview,
        this.duration,
        this.graduation,
        this.status,
        this.locked,
    });

    int id;
    String type;
    String title;
    bool preview;
    String duration;
    String graduation;
    String status;
    bool locked;

    factory Item.fromJson(Map<String, dynamic> json) => Item(
        id: json["id"],
        type: json["type"],
        title: json["title"],
        preview: json["preview"],
        duration: json["duration"],
        graduation: json["graduation"],
        status: json["status"],
        locked: json["locked"],
    );

    Map<String, dynamic> toJson() => {
        "id": id,
        "type": type,
        "title": title,
        "preview": preview,
        "duration": duration,
        "graduation": graduation,
        "status": status,
        "locked": locked,
    };
}
Run Code Online (Sandbox Code Playgroud)