Json 颤振错误:参数类型';动态';can';不能分配给参数类型';Iterable<;动态>';

Json 颤振错误:参数类型';动态';can';不能分配给参数类型';Iterable<;动态>';,json,flutter,dart,restapi,Json,Flutter,Dart,Restapi,请帮忙。 我正在尝试使用JSON到Dart工具创建一个模型 其目的是从JSON API检索所有公司(及其属性)的列表 我得到以下错误: 无法将参数类型“dynamic”分配给参数类型映射 无法将参数类型“dynamic”分配给参数类型Iterable 无法将参数类型“dynamic”分配给参数类型Int 请参考下图。 谢谢。我已经测试了这个类,它可以正常工作 import 'dart:convert'; CompanyModel companyModelFromJson(String s

请帮忙。 我正在尝试使用JSON到Dart工具创建一个模型

其目的是从JSON API检索所有公司(及其属性)的列表

我得到以下错误:

  • 无法将参数类型“dynamic”分配给参数类型映射
  • 无法将参数类型“dynamic”分配给参数类型Iterable
  • 无法将参数类型“dynamic”分配给参数类型Int
请参考下图。


谢谢。

我已经测试了这个类,它可以正常工作

import 'dart:convert';

CompanyModel companyModelFromJson(String str) => CompanyModel.fromJson(json.decode(str));

String companyModelToJson(CompanyModel data) => json.encode(data.toJson());

class CompanyModel {
    CompanyModel({
        this.companies,
    });

    List<Company> companies;

    factory CompanyModel.fromJson(Map<String, dynamic> json) => CompanyModel(
        companies: List<Company>.from(json["companies"].map((x) => Company.fromJson(x))),
    );

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

class Company {
    Company({
        this.id,
        this.name,
    });

    int id;
    String name;

    factory Company.fromJson(Map<String, dynamic> json) => Company(
        id: json["id"],
        name: json["name"],
    );

    Map<String, dynamic> toJson() => {
        "id": id,
        "name": name,
    };
}
导入'dart:convert';
CompanyModel companyModelFromJson(String str)=>CompanyModel.fromJson(json.decode(str));
字符串companyModelToJson(companyModelData)=>json.encode(data.toJson());
类公司模型{
公司模型({
这是一些公司,
});
上市公司;
工厂CompanyModel.fromJson(映射json)=>CompanyModel(
公司:List.from(json[“companys”].map((x)=>Company.fromJson(x)),
);
映射到JSON()=>{
“公司”:List.from(companys.map((x)=>x.toJson()),
};
}
阶级公司{
公司({
这个身份证,
这个名字,
});
int-id;
字符串名;
工厂公司.fromJson(映射json)=>公司(
id:json[“id”],
名称:json[“名称”],
);
映射到JSON()=>{
“id”:id,
“姓名”:姓名,
};
}
作为替代方案,您可以从以下位置使用此代码:

class公司模型{
上市公司;
CompanyModel({this.companys});
CompanyModel.fromJson(映射json){
if(json['companys']!=null){
公司=新列表();
json['companys'].forEach((v){
companys.add(newcompanys.fromJson(v));
});
}
}
映射到JSON(){
最终地图数据=新地图();
如果(this.companys!=null){
data['companys']=this.companys.map((v)=>v.toJson()).toList();
}
返回数据;
}
}
阶级公司{
int-id;
字符串名;
公司({this.id,this.name});
companys.fromJson(映射json){
id=json['id'];
name=json['name'];
}
映射到JSON(){
最终地图数据=新地图();
数据['id']=this.id;
数据['name']=this.name;
返回数据;
}
}

您能发布json响应吗?{“公司”:[{“id”:19,“名称”:“股权”},{“id”:1,“名称”:“国王糕点”},{“id”:5,“名称”:“索纳斯”}谢谢。不过我应该提到,我也测试了JsonToDart。您正在运行哪个颤振版本?我想知道这是否与我的版本有关。我正在使用:颤振2.0.3省道2.12.2
class CompanyModel {
  List<Companies> companies;

  CompanyModel({this.companies});

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

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

class Companies {
  int id;
  String name;

  Companies({this.id, this.name});

  Companies.fromJson(Map<String, dynamic> json) {
    id = json['id'];
    name = json['name'];
  }

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