【问题标题】:Serialize list of objects with json_serializable without creating extra class使用 json_serializable 序列化对象列表而不创建额外的类
【发布时间】:2019-08-11 10:57:17
【问题描述】:

我看到a tutorial 创建了一个额外的类只是为了能够序列化对象列表,而不是单个对象:

我正在使用json_serializable 为我的班级Preference 生成一些序列化代码,但现在我想使用shared_preferences 保存一个首选项列表,但我显然得到了一个错误。

var sSavedPrefs = json.encode(PreferenceRepo.getSavedPrefs());
prefs.setString(saved_prefs_key, sSavedPrefs );

我用过

@JsonSerializable()
class Preference{...}

使其可序列化,但我不想创建一个额外的类

@JsonSerializable()
class Preferences{...}

只是为了让它工作 - 有没有更好的方法?

【问题讨论】:

    标签: serialization flutter dart


    【解决方案1】:

    我找到了一个方法:
    使用setStringList 方法,我可以创建一个List,在其中我一个一个地添加每个序列化对象,而无需额外的列表类。我还注意到json.encode 可能不是正确的使用方法,我在another tutorial 中看到jsonEncode 并改用它:

    List<String> savedPrefsJson = [];
    for (Preference savedPref in PreferenceRepo.savedPrefs) {
      String savedPrefJson = jsonEncode(savedPref);
      savedPrefsJson.add(savedPrefJson);
    }
    prefs.setStringList(saved_prefs_key, savedPrefsJson);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多