为了账号安全,请及时绑定邮箱和手机立即绑定

如何将序列化流转换为字符串?

如何将序列化流转换为字符串?

C#
慕后森 2022-08-20 17:54:14
我需要序列化和反序列化列表,并将其写在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);
    }


查看完整回答
反对 回复 2022-08-20
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

查看完整回答
反对 回复 2022-08-20
  • 2 回答
  • 0 关注
  • 173 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号