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

我需要序列化和反序列化列表,并将其写在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));

    }


}

此外如果有任何方法可以在现有文件中添加行而不替换所有文本,请告诉我。


慕后森
浏览 174回答 2
2回答

幕布斯7119047

查看以下代码是否是您需要的代码。我不太确定你是否意味着你不了解如何写入流。&nbsp;&nbsp;private&nbsp;async&nbsp;void&nbsp;Button_Click(object&nbsp;sender,&nbsp;RoutedEventArgs&nbsp;e) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Windows.Storage.StorageFolder&nbsp;storageFolder&nbsp;=&nbsp;Windows.Storage.ApplicationData.Current.LocalFolder; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Windows.Storage.StorageFile&nbsp;sampleFile&nbsp;=await&nbsp;storageFolder.GetFileAsync("sample.json"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataFormat&nbsp;data&nbsp;=&nbsp;new&nbsp;DataFormat(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data.firstName&nbsp;=&nbsp;"Barry"; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data.lastName&nbsp;=&nbsp;"Wang"; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data.country&nbsp;=&nbsp;"China"; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stream&nbsp;mystream&nbsp;=&nbsp;await&nbsp;sampleFile.OpenStreamForWriteAsync();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataContractJsonSerializer&nbsp;ser&nbsp;=&nbsp;new&nbsp;DataContractJsonSerializer(typeof(DataFormat)); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ser.WriteObject(mystream,&nbsp;data); &nbsp;&nbsp;&nbsp;&nbsp;}

斯蒂芬大帝

在这里你需要什么,你可以使用LosFormatter类 - 见&nbsp;https://weblog.west-wind.com/posts/2006/Oct/13/LosFormatter-for-easy-Serialization
打开App,查看更多内容
随时随地看视频慕课网APP