当前位置: 首页 > 知识库问答 >
问题:

_TypeError(type'(动态)=>Null'不是f'的type'(String,动态)=>space'的子类型)

司寇善
2023-03-14

我不知道如何修正这个错误。

已发生异常。_TypeError(type'(动态)=

class _ShowformState extends State<Showform> {
  List<MaintenanceInfo> info = [];

  @override
  void initState() {
    super.initState();
    fetchData();
  }

  void fetchData() async {
    final data = await http.get('http://192.168.1.35:7000/');
    print(data.body);
    final jsonData = json.decode(data.body);
    setState(() {
      jsonData.forEach((v) {
        var tmpData = MaintenanceInfo.fromJson(v);
        info.add(tmpData);
      });
    });
  }

MaintenanceInfo maintenanceInfoFromJson(String str) =>
    MaintenanceInfo.fromJson(json.decode(str));

String maintenanceInfoToJson(MaintenanceInfo data) =>
    json.encode(data.toJson());

class MaintenanceInfo {
  MaintenanceInfo(
      {this.serial,
      this.model,
   });
  String serial;
  String model;

  factory MaintenanceInfo.fromJson(Map<String, dynamic> json) =>
      MaintenanceInfo(
        serial: json['serial'],
        model: json['model'],);

  Map<String, dynamic> toJson() => {
        'serial': serial,
        'model': model, };}

JSON格式看起来像这样

{ "data": [
    {
      "serial": "8850124003850",
      "model": "280",  
    },]
}

附言:我是颤振开发方面的新手。

共有1个答案

方玄天
2023-03-14

你的模型看起来有问题。你需要这样修改:


class MaintenanceInfo {
  List<Data> data;

  MaintenanceInfo({this.data});

  MaintenanceInfo.fromJson(Map<String, dynamic> json) {
    if (json['data'] != null) {
      data = new List<Data>();
      json['data'].forEach((v) {
        data.add(new Data.fromJson(v));
      });
    }
  }

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

class Data {
  String serial;
  String model;

  Data({this.serial, this.model});

  Data.fromJson(Map<String, dynamic> json) {
    serial = json['serial'];
    model = json['model'];
  }

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

您可以使用此网站将JSON转换为Dart模型。

 类似资料: