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

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 是一个对象数组 只需转换一个模型,然后在创建一个类后将您的模型列表作为属性

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

如何将字符串类型的日期转换为另一种日期格式。 |颤振 |飞镖[重复]

将 ison 转换为可读的飞镖

如何在飞镖中将 2 个字节转换为 Int16?

如何在飞镖颤动中转换图像 dpi(每英寸点数)?

(颤振)将飞镖时间(不是日期)转换为警报的持续时间

Flutter 将字符串转换为数组