使用JSON将数据附加到Windows应用商店8中的现有文件

时间:2014-07-31 05:31:35

标签: json windows-store-apps windows-store

我创建了一个应用程序,我将数据插入到该文件中。它工作正常。以下是我的代码:

private async void btnSearch_Click(object sender, RoutedEventArgs e)
    {            
        UserDetails details = new UserDetails 
        {
             Name= TxtName.Text,
             Course= TxtCouse.Text,
             City=TxtCity.Text                
        };            

        string jsonContents = JsonConvert.SerializeObject(details);

        StorageFolder localFolder = await ApplicationData.Current.LocalFolder.CreateFolderAsync("Storage", CreationCollisionOption.ReplaceExisting); ;
        StorageFile textFile = await localFolder.CreateFileAsync("UserDetails.txt", CreationCollisionOption.ReplaceExisting);
        using (IRandomAccessStream textStream = await textFile.OpenAsync(FileAccessMode.ReadWrite))
        {
            // write the JSON string!
            using (DataWriter textWriter = new DataWriter(textStream))
            {
                textWriter.WriteString(jsonContents);
                await textWriter.StoreAsync();
            }
        }
        this.Frame.Navigate(typeof(BlankPage1));
    }     

现在我想要的是,当用户输入新数据时,数据将附加到同一现有文件中。

1 个答案:

答案 0 :(得分:0)

将数据附加到JSON文本文件意味着要对文件进行一些解析以找到插入文本的正确位置。也就是说,因为JSON是用{}分隔符构成的,所以只是将文本附加到文件末尾并不是一件简单的事情。

鉴于您的数据看起来不那么大,最简单的方法是将JSON从现有文件反序列化到内存中,将其他属性添加到该数据结构,然后序列化回JSON。在这种情况下,您可能只想在应用程序会话期间维护内存中的结构,并且只需在需要时使用新数据覆盖该文件。但是当然你也可以重新打开文件,将JSON读/解到内存中,然后重写内容。