首页 > 解决方案 > 在 Dart Flutter 如何创建模型类以接收 JSON 中的空列表值

问题描述

我通过 API 从后端接收以下 JSON 值,如何创建其数据模型类

   {
     "accessories": {
        "cameras": [],
        "obds": [],
        "screens": []
      }
    }

标签: flutterdart

解决方案


要解析此 JSON 数据,请执行

最终模型 = modelFromMap(jsonString);

import 'dart:convert';

class Model {
    Model({
        this.accessories,
    });

    Accessories accessories;

    factory Model.fromJson(String str) => Model.fromMap(json.decode(str));

    String toJson() => json.encode(toMap());

    factory Model.fromMap(Map<String, dynamic> json) => Model(
        accessories: Accessories.fromMap(json["accessories"]),
    );

    Map<String, dynamic> toMap() => {
        "accessories": accessories.toMap(),
    };
}

class Accessories {
    Accessories({
        this.cameras,
        this.obds,
        this.screens,
    });

    List<dynamic> cameras;
    List<dynamic> obds;
    List<dynamic> screens;

    factory Accessories.fromJson(String str) => Accessories.fromMap(json.decode(str));

    String toJson() => json.encode(toMap());

    factory Accessories.fromMap(Map<String, dynamic> json) => Accessories(
        cameras: List<dynamic>.from(json["cameras"].map((x) => x)),
        obds: List<dynamic>.from(json["obds"].map((x) => x)),
        screens: List<dynamic>.from(json["screens"].map((x) => x)),
    );

    Map<String, dynamic> toMap() => {
        "cameras": List<dynamic>.from(cameras.map((x) => x)),
        "obds": List<dynamic>.from(obds.map((x) => x)),
        "screens": List<dynamic>.from(screens.map((x) => x)),
    };
}

推荐阅读