如何将数组转换为飞镖对象

Posted

技术标签:

【中文标题】如何将数组转换为飞镖对象【英文标题】:How to convert an array to a dart object 【发布时间】:2020-01-16 01:05:28 【问题描述】:

我的 API 返回以下结构。如何将其转换为飞镖对象?

[
    
        "stateName": "Alabama",
        "stateAbbr": "AL"
    ,
    
        "stateName": "Alaska",
        "stateAbbr": "AK"
    
]

基本上,我想显示一个带有 stateName 值的颤振下拉框..

【问题讨论】:

How to convert Response JSON to Object in Flutter?的可能重复 【参考方案1】:

这是一个地图列表。 首先创建一个 State 类:

class State
  final String stateName;
  final String stateAbbr;
  State(
    this.stateName,
    this.stateAbbr,
) ;

  factory State.fromJson(Map<String, dynamic> json)
    return new State(
      id: json['stateName'],
      title: json['stateAbbr'],
    );
  

然后是状态列表:

class StatesList 
  final List<State> States;

  StatesList(
    this.States,
  );

factory StatesList.fromJson(List<dynamic> parsedJson) 

    List<State> States = new List<State>();
States = parsedJson.map((i)=>State.fromJson(i)).toList();
    return new StatesList(
       States: States,
    );
  


更多信息请阅读this文章

【讨论】:

【参考方案2】:
    class State 
  String stateName;
  String stateAbbr;

  State(this.stateName, this.stateAbbr);

  State.fromJson(Map<String, dynamic> json) 
    stateName = json['stateName'];
    stateAbbr = json['stateAbbr'];
  

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

这个网站可以将对象 JSON 转换为 Dart 类 https://javiercbk.github.io/json_to_dart/?fbclid=IwAR3i5zNWd3mwXJwHcUwAd47pxe25XOhPdhan6s_3CH1Cgb9Qic8az3UmZc4 你应该使用 然后创建您的对象列表

【讨论】:

当我尝试将该链接与我的 json 一起使用时出现错误。如您所见,我的 json 是一个对象数组 只需转换一个模型,然后在创建一个类后将您的模型列表作为属性

以上是关于如何将数组转换为飞镖对象的主要内容,如果未能解决你的问题,请参考以下文章