список флаттера во вложенный json вручную - PullRequest
0 голосов
/ 04 августа 2020

У меня есть список контактов, из которого я хотел бы отправить givenName, familyName и displayName в API, используя json строку ..

final contacts =
    (await ContactsService.getContacts(withThumbnails: false)).toList();

Я пытался, но не смог создать вложенный массив:

List<dynamic> list = new List<dynamic>();

for (final contact in contacts) {
    list.add(contact.givenName);
}

print(list);

Я бы хотел что-то вроде:

[
    {"id":1,"givenName":"Joe","familyname":"Walker"},
    {"id":2,"givenName":"Zoe","familyname":"Sleeper"}
];

1 Ответ

1 голос
/ 04 августа 2020

Обновлено попробуйте этот

for (final contact in contacts) {
     var json = {'givenName' : contact.givenName, 'familyName': contact.familyName};
     list.add(json);
 }

OLD

У вашего класса Contact должен быть метод to Json для этого.

class Contact {
   Int id;
  String givenName, familyName;

  Map<String, dynamic> toJson() =>
  {
    'id': id,
    'givenName' : givenName, 
    'familyName': familyName,
  }; 
}

Теперь ваш код должен работать

List<dynamic> list = new List<dynamic>();

for (final contact in contacts) {
    list.add(contact.toJson());
}

print(list); 
...