我看到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{...}
只是为了使其工作-有更好的方法吗?
答案 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);