【问题标题】:convert Map<String,dynamic> data to class data将 Map<String,dynamic> 数据转换为类数据
【发布时间】:2019-09-03 10:56:29
【问题描述】:

在我的应用程序和其中一个屏幕中,我将带有Map&lt;String,dynamic&gt; 的类数据传递到另一个屏幕,

onTap: (){
  Map<String,dynamic> dataMap = Map<String,dynamic>();
  dataMap['id']=tickets[index].id;
  dataMap['subject']=tickets[index].subject;
  dataMap['createdAt']=tickets[index].createdAt;
  dataMap['ticketNumber']=tickets[index].ticketNumber;

  Navigation.router.navigateTo(context, 'showTicketReplies/$dataMap',transition: TransitionType.fadeIn);
  },

在另一个屏幕中,我可以使用以下结构获取此数据:

widget.ticketData = {_InternalLinkedHashMap} size = 1
 0 = {map entry} "id" -> [_GrowableList]
  key = "id"
  value = {_GrowableList} size = 1
   0 = "{
           id: 1, 
           subject: hello world, 
           createdAt: 2019-01-01, 
           ticketNumber: 3381
        }"

现在我想用这些数据制作简单的类变量:

TicketsTableData get _ticket => TicketsTableData.fromJson(widget.ticketData.values.toList()[0][0]);

widget.ticketData.values.toList()[0][0] 的值是:

{id: 1, subject: hello world, createdAt:2019-01-01, ticketNumber: 3381}

但是当我尝试它时,我得到了这个错误:

type 'String' is not a subtype of type 'Map<String, dynamic>'

更新

我想我应该在制作类数据之前将其转换为json。例如:

TicketsTableData get _ticket => TicketsTableData.fromJson(json.encode(widget.ticketData.values.toList()[0][0].toString()));

但我得到json 没有任何报价

【问题讨论】:

  • 你可以在这里发布你的TicketTableData JSON

标签: flutter dart


【解决方案1】:

问题解决了!!!

onTap: (){
  var dataMap ={};
  dataMap["id"]           = tickets[index].id;
  dataMap["subject"]      = tickets[index].subject;
  dataMap["createdAt"]    = tickets[index].createdAt;
  dataMap["ticketNumber"] = tickets[index].ticketNumber;

  Navigation.router.navigateTo(context, 'showTicketReplies/${json.encode(dataMap)}',transition: TransitionType.fadeIn);
},

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-10
    • 2017-08-24
    • 2023-03-27
    • 1970-01-01
    • 2022-11-12
    相关资源
    最近更新 更多