Vrusti Patel
Vrusti Patel

Reputation: 574

How to convert string arraylist to model arraylist in flutter?

List<String> langList = [English,  Gujarati,  Hindi,  Marathi,  Punjabi,  Urdu,  Spanish]

var selectedLanguagesList = <LanguageDatum>[].obs;

langList is a string type of list. and selectedLanguagesList is a model type of list. How do I convert string list to model list in flutter ?

class LanguageDatum {
  LanguageDatum({
     this.id,
     this.name,
     this.status,
    this.createdAt,
    this.updatedAt,
    this.deletedAt,
  });

  int? id;
  String? name;
  int? status;
  DateTime? createdAt;
  DateTime? updatedAt;
  dynamic deletedAt;

  factory LanguageDatum.fromJson(Map<String, dynamic> json) => LanguageDatum(
    id: json["id"]??0,
    name: json["name"]??"",
    status: json["status"]??"",
    createdAt: json["created_at"] != null ? DateTime.parse(json["created_at"]) : null,
    updatedAt: json["updated_at"] != null ? DateTime.parse(json["updated_at"]) : null,
    deletedAt: json["deleted_at"],
  );

  Map<String, dynamic> toJson() => {
    "id": id,
    "name": name,
    "status": status,
    "created_at": createdAt,
    "updated_at": updatedAt,
    "deleted_at": deletedAt,
  };
}

So, Above is model class.

Upvotes: 1

Views: 711

Answers (2)

KeroJohn97
KeroJohn97

Reputation: 362

If I understand your question correctly, I guess it would be

// To convert String array to Model array
final listOfLanguageDatum =
    langList.map((e) => LanguageDatum(name: e)).toList();

List<String> langList = [
  'Tamil'
  'English',
  'Gujarati',
  'Hindi',
  'Marathi',
  'Punjabi',
  'Urdu',
  'Spanish'
];

class LanguageDatum extends GetxController {
  LanguageDatum({
    this.id,
    this.name,
    this.status,
    this.createdAt,
    this.updatedAt,
    this.deletedAt,
  });

  int? id;
  String? name;
  int? status;
  DateTime? createdAt;
  DateTime? updatedAt;
  dynamic deletedAt;

  factory LanguageDatum.fromJson(Map<String, dynamic> json) => LanguageDatum(
        id: json["id"] ?? 0,
        name: json["name"] ?? "",
        status: json["status"] ?? "",
        createdAt: json["created_at"] != null
            ? DateTime.parse(json["created_at"])
            : null,
        updatedAt: json["updated_at"] != null
            ? DateTime.parse(json["updated_at"])
            : null,
        deletedAt: json["deleted_at"],
      );

  Map<String, dynamic> toJson() => {
        "id": id,
        "name": name,
        "status": status,
        "created_at": createdAt,
        "updated_at": updatedAt,
        "deleted_at": deletedAt,
      };

  @override
  String toString() {
    return 'LanguageDatum(id: $id, name: $name, status: $status, createdAt: $createdAt, updateAt: $updatedAt, deletedAt: $deletedAt)';
  }
}

Upvotes: 1

IonicFireBaseApp
IonicFireBaseApp

Reputation: 1230

Right now your language is of String type, to make language object You need to make a model class say,

Class LanguageDatum{
String name;
   ...
}

Upvotes: 0

Related Questions