Как переписать результат кодирования в виде строкового представления?

#flutter #dart

Вопрос:

Есть модель

 class ProfileData {
  final String id;
  final String photo;
  final String text;

  const ProfileData(this.id, this.photo, this.text);
  ...

  static Map<String, dynamic> toJson(ProfileData data) {
    return {
      "id": data.id,
      "photo": data.photo,
      "text": data.text,
    };
  }

  static String encode(List<ProfileData> list) => json.encode(
        list.map<Map<String, dynamic>>((item) => ProfileData.toJson(item)).toList(),
      );
 

позже в кодексе

 String favorites = (prefs.getString('favorites') ??
    ProfileData.encode(<ProfileData>[
      ProfileData('id1', 'photo1', 'text data 1'),
      ProfileData('id2', 'photo2', 'text data 2'),
    ]));
 

Результатом encode является строка, тогда как переписать правую часть условия в виде строкового представления, в случае, если условие левой части равно нулю?

Комментарии:

1. @pskink этот ??

2. хорошо, а в чем на самом деле проблема ProfileData.encode(<ProfileData>[ ... ?

3. @pskink прямо здесь

4. ProfileData.encode возвращает a String , так в чем же проблема с этим?

5. Что вы хотите, так это жестко настроить сериализованные модели, такие как : prefs.getString('favorites') ??'''[ {"id":"id1","photo": "photo1","text": "text data 1"}, {"id":"id2","photo": "photo2","text": "text data 2"}, ]''' ? Это все?