我需要序列化和反序列化列表,并将其写在JSON文件上供以后使用。我成功地取消了文件,但在序列化后无法写入。我该怎么做?这是我写的代码。StorageFile savedFile = await storageFolder.GetFileAsync("SavedData.json");string text = await FileIO.ReadTextAsync(savedFile);var serializer = new DataContractJsonSerializer(typeof(DataFormat));var ms = new MemoryStream(Encoding.UTF8.GetBytes(text));List<DataFormat> data = (List<DataFormat>)serializer.ReadObject(ms); if (data == null) { data = new List<DataFormat>(); } data.Add(new DataFormat { firstName = fnbox.Text, lastName = lnbox.Text, country = cbox.Text });MemoryStream stream = new MemoryStream();DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(DataFormat));ser.WriteObject(stream, data);数据格式类 -[DataContract]public class DataFormat : IEquatable<DataFormat>{ [DataMember] public string firstName{ get; set; } [DataMember] public string lastName { get; set; } [DataMember] public string country { get; set; } public bool Equals(DataFormat other) { if (other == null) { return false; } return (firstName.Equals(other.firstName)); }}此外如果有任何方法可以在现有文件中添加行而不替换所有文本,请告诉我。
2 回答

幕布斯7119047
TA贡献1794条经验 获得超8个赞
查看以下代码是否是您需要的代码。我不太确定你是否意味着你不了解如何写入流。
private async void Button_Click(object sender, RoutedEventArgs e) { Windows.Storage.StorageFolder storageFolder = Windows.Storage.ApplicationData.Current.LocalFolder; Windows.Storage.StorageFile sampleFile =await storageFolder.GetFileAsync("sample.json"); DataFormat data = new DataFormat(); data.firstName = "Barry"; data.lastName = "Wang"; data.country = "China"; Stream mystream = await sampleFile.OpenStreamForWriteAsync(); DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(DataFormat)); ser.WriteObject(mystream, data); }

斯蒂芬大帝
TA贡献1827条经验 获得超8个赞
- 2 回答
- 0 关注
- 173 浏览
添加回答
举报
0/150
提交
取消