繁体   English   中英

如何将 json 数组转换为 model class in flutter dart/

[英]How to convert json array to model class in flutter dart/

{
    "feed": {
        "entry": [
            {
                "im:name": {
                    "label": "The Rise"
                },
                "im:image": [
                    {
                        "label": "https://cover.jpg/55x55bb.png"
                    }
                ]
            }
        ]
    }
}

谁能帮助我如何为此响应创建 dart class。 我也尝试过许多在线转换器。 但是当我实时执行该代码时显示出很多错误。

这里:

class Model {
  Feed? feed;

  Model({this.feed});

  Model.fromJson(Map<String, dynamic> json) {
    feed = json['feed'] != null ? new Feed.fromJson(json['feed']) : null;
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    if (this.feed != null) {
      data['feed'] = this.feed!.toJson();
    }
    return data;
  }
}

class Feed {
  List<Entry>? entry;

  Feed({this.entry});

  Feed.fromJson(Map<String, dynamic> json) {
    if (json['entry'] != null) {
      entry = <Entry>[];
      json['entry'].forEach((v) {
        entry!.add(new Entry.fromJson(v));
      });
    }
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    if (this.entry != null) {
      data['entry'] = this.entry!.map((v) => v.toJson()).toList();
    }
    return data;
  }
}

class Entry {
  ImName? imName;
  List<ImImage>? imImage;

  Entry({this.imName, this.imImage});

  Entry.fromJson(Map<String, dynamic> json) {
    imName =
        json['im:name'] != null ? new ImName.fromJson(json['im:name']) : null;
    if (json['im:image'] != null) {
      imImage = <ImImage>[];
      json['im:image'].forEach((v) {
        imImage!.add(new ImImage.fromJson(v));
      });
    }
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    if (this.imName != null) {
      data['im:name'] = this.imName!.toJson();
    }
    if (this.imImage != null) {
      data['im:image'] = this.imImage!.map((v) => v.toJson()).toList();
    }
    return data;
  }
}

class ImName {
  String? label;

  ImName({this.label});

  ImName.fromJson(Map<String, dynamic> json) {
    label = json['label'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['label'] = this.label;
    return data;
  }
}

Json 到 Dart有效。

Json 往返 Dart Class:只需使用在线 dart 代码生成网站如下:

  1. https://app.quicktype.io/
  2. https://javiercbk.github.io/json_to_dart/

可能需要进行一次更正。 从@required 中删除@。

我认为这是最好的方法。 build_runner 很好但有时很痛苦。 所以,我采用了这个方法。 它最适合我。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM