如何在Flutter中将字符串转换为对象?

沙鹿

我有两个模型类Employee和AdditionalDetails

class Employee{
  AdditionalDetails(this.uuid, this.additional_details);

  String uuid;
  String additional_details; 
}

class AdditionalDetails{
  AdditionalDetails(this.start, this.end, this.month);

  String start;
  String end;
  String month;

}

And I have a handler in which I am creating objects of AdditionalDetails and pushing into a list.


  List<Employee> list = new List<Employee>;
  String add1 = AdditionalDetails("start1", "end1", "dec").toString();
  String add2 = AdditionalDetails("start2", "end2", "jan").toString();
  list.add(1, add1);
  list.add(2, add2);

我将这些项目显示在列表中,并且在单击每个项目时,必须在对话框中显示其他详细信息。

我可以通过遍历列表来获取uuid,但是在执行json.decode(additional_details)时,它给出的是:

SyntaxError: Unexpected token I in JSON at position 0

如何从AdditionalDetails获取开始,结束和月份属性?

比奇汉

我想这就是你想要的。

class Employee {
  Employee(this.uuid, this.additionalDetails);

  String uuid;
  String additionalDetails;
}

class AdditionalDetails {
  AdditionalDetails(
    this.start,
    this.end,
    this.month,
  );

  final String start;
  final String end;
  final String month;

  @override
  String toString() => '$start $end $month';
}

final list = <Employee>[];
final add1 = AdditionalDetails("start1", "end1", "dec").toString();
final add2 = AdditionalDetails("start2", "end2", "jan").toString();
list.add(Employee('1', add1));
list.add(Employee('2', add2));

更酷的方式:

class Employee {
  Employee({
    @required this.uuid,
    @required this.additionalDetails,
  });

  final String uuid;
  final AdditionalDetails additionalDetails;

  factory Employee.fromJson(Map<String, dynamic> json) => Employee(
        uuid: json["uuid"],
        additionalDetails: json["additionalDetails"],
      );

  Map<String, dynamic> toJson() => {
        "uuid": uuid,
        "additionalDetails": additionalDetails.toJson(),
      };
}

class AdditionalDetails {
  AdditionalDetails({
    @required this.start,
    @required this.end,
    @required this.month,
  });

  final String start;
  final String end;
  final String month;

  factory AdditionalDetails.fromJson(Map<String, dynamic> json) =>
      AdditionalDetails(
        start: json["start"],
        end: json["end"],
        month: json["month"],
      );

  Map<String, dynamic> toJson() => {
        "start": start,
        "end": end,
        "month": month,
      };
}

final list = <Employee>[];
final add1 = AdditionalDetails(start: "start1", end: "end1", month: "dec");
list.add(Employee(uuid: '1', additionalDetails: add1));

final json = add1.toJson(); // Map<String, dynamic>
final startFromJson = json['start'];

final object = AdditionalDetails.fromJson(json); // AdditionalDetails
final startFromObject = object.start;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Flutter中将颜色转换为字符串?

如何在 JavaScript 中将字符串转换为对象?

如何在Javascript中将字符串转换为对象?

如何在dart flutter中将嵌套的json字符串转换为json对象?

如何在dart flutter中将json字符串转换为json对象?

如何在Flutter中将Unicode字符串转换为正确的字符串(中文)

如何在JavaScript中将Request对象转换为可字符串化的对象?

如何在python中将字符串对象转换为lambda函数对象

如何在 Arduino 中将字符串转换为字符 *?

如何在 dart:flutter 中将 Future<dynamic> 转换为字符串

如何在Flutter中将远程xml文件转换为字符串?

如何在flutter中将二进制字符串转换为json字符串

如何在javascript / lodash中将字符串数组转换为键对象

如何在JavaScript中将字符串数组转换为对象属性?

如何在Java中将字符串转换为日期对象

如何在Java中将对象数组转换为字符串数组

如何在 AngularJS 中将给定的字符串转换为对象

如何在Android中将JSON对象转换为字符串

如何在JavaScript中将对象属性字符串转换为整数

如何在JavaScript中将字符串转换为JSON对象

如何在Java中将对象转换为字符串

如何在Kotlin中将对象字符串转换为数据类

如何在Java中将以下字符串转换为日期或日历对象?

如何在Java中将字符串转换为Time对象?

如何在JavaScript中将字符串转换为对象数组

如何在Java Spring中将对象转换为字符串

如何在golang中将动态生成的数组对象数据转换为JSON格式的字符串?

如何在Symfony 3中将对象数组转换为字符串?

如何在PowerShell中将数组对象转换为字符串?