使用json_serializable序列化对象列表,而无需创建额外的类

时间:2019-08-11 10:57:17

标签: serialization flutter dart

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

我正在使用json_serializable为我的类Preference生成一些序列化代码,但是现在我想使用shared_preferences保存首选项列表,显然会出现错误。 / p>

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

我用过

@JsonSerializable()
class Preference{...}

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

@JsonSerializable()
class Preferences{...}

只是为了使其工作-有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

我找到了一种方法:
使用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);