Json 在windows 8中将数据写入文本文件

Json 在windows 8中将数据写入文本文件,json,html,windows-8,Json,Html,Windows 8,我正在使用HTML5开发一个Windows8应用程序。应用程序需要一些用户数据来创建新事件。事件有标题、描述、日期和时间。我想在用户填写表单后将此数据存储在JSON格式的文本文件中,以便在用户下次打开应用程序时可以看到 我可以找到将JSON对象写入文本文件的不同方法,但找不到任何与在文本文件末尾追加数据相关的方法。基本上,我有一个events.txt,从中读取和显示数据,我想在用户添加事件后将事件附加到同一个.txt中 我的events.txt如下所示 [ { "

我正在使用HTML5开发一个Windows8应用程序。应用程序需要一些用户数据来创建新事件。事件有标题、描述、日期和时间。我想在用户填写表单后将此数据存储在JSON格式的文本文件中,以便在用户下次打开应用程序时可以看到

我可以找到将JSON对象写入文本文件的不同方法,但找不到任何与在文本文件末尾追加数据相关的方法。基本上,我有一个events.txt,从中读取和显示数据,我想在用户添加事件后将事件附加到同一个.txt中

我的events.txt如下所示

[
        {
        "key": "event1",
        "title": "title1", 
        "description": "description1",
        "date": "<sample date>",
        "time": "<sample time>",
        "backgroundImage": "../images/logo.png"
        }
]
任何形式的帮助都将不胜感激,因为我在这里的最后期限很紧

谢谢。

您是否正在为
消费者预览版
寻找此功能

如果我正确理解了您的问题,我想这里有一些您想要使用的重要API

// Create a file
var eventFile;
Windows.Storage.KnownFolders.documentsLibrary.createFileAsync("event.txt", Windows.Storage.CreationCollisionOption.openIfExists).done(function (file) {
        eventFile = file;
    });

// Write Text to a file
Windows.Storage.FileIO.writeTextAsync(eventFile, JSON.stringify(yourJSONObject));

// Append Text to a file
Windows.Storage.FileIO.appendTextAsync(eventFile, JSON.stringify(yourJSONObject));
更多有关FileIO API的参考:

此外,您为什么不考虑使用<代码>本地存储< /代码>或<代码>索引XDB < /代码>来存储您的事件信息?

< p>您是为“代码>消费者预览< /COD> < /P>找这个吗?” 如果我正确理解了您的问题,我想这里有一些您想要使用的重要API

// Create a file
var eventFile;
Windows.Storage.KnownFolders.documentsLibrary.createFileAsync("event.txt", Windows.Storage.CreationCollisionOption.openIfExists).done(function (file) {
        eventFile = file;
    });

// Write Text to a file
Windows.Storage.FileIO.writeTextAsync(eventFile, JSON.stringify(yourJSONObject));

// Append Text to a file
Windows.Storage.FileIO.appendTextAsync(eventFile, JSON.stringify(yourJSONObject));
更多有关FileIO API的参考:


<> P>此外,为什么不考虑使用<代码>本地存储< /代码>或<代码>索引XDB < /代码>来存储您的事件信息?

如果您认为这不是我正在做的最好的方式,那么请让我知道如何进行。就像我说的,任何形式的帮助都将被感激。如果你认为这不是做我正在做的事情的最佳方式,那么请让我知道如何继续。如我所说,任何形式的帮助都将不胜感激。谢谢你的回复。我已经浏览了文件访问示例。据我所知,每次打开应用程序时都会创建文件,对吗?我只是再次尝试API。我希望用户每次打开应用程序时都可以使用更新的数据。@user870681根据我自己的经验,数据是持久的。只要你不移除它,它就应该在那里。您可以使用
Windows.Storage.CreationCollisionOption.OpenIfExists
来避免覆盖文件。从那时起,我一直在尝试这个方法,但应用程序不断崩溃。然后我尝试了“Windows.Storage.ApplicationData.current.local.createFileAsync(“events.txt”);”我可以用它在文件中写入数据,但现在我在读取时遇到了问题。有什么想法吗?你想让我发布完整的代码吗?我想你可能想先修复崩溃,因为它会覆盖现有的文件,对吗?你知道它在哪里坠毁吗?p、 为什么要使用文件而不是本地存储?使用文件需要您请求其他权限,但localStorage不需要。所谓本地存储,您的意思是
Windows.storage.ApplicationData.current.local.createFileAsync(“events.txt”)?还是有别的事?谢谢你的回复。我已经浏览了文件访问示例。据我所知,每次打开应用程序时都会创建文件,对吗?我只是再次尝试API。我希望用户每次打开应用程序时都可以使用更新的数据。@user870681根据我自己的经验,数据是持久的。只要你不移除它,它就应该在那里。您可以使用
Windows.Storage.CreationCollisionOption.OpenIfExists
来避免覆盖文件。从那时起,我一直在尝试这个方法,但应用程序不断崩溃。然后我尝试了“Windows.Storage.ApplicationData.current.local.createFileAsync(“events.txt”);”我可以用它在文件中写入数据,但现在我在读取时遇到了问题。有什么想法吗?你想让我发布完整的代码吗?我想你可能想先修复崩溃,因为它会覆盖现有的文件,对吗?你知道它在哪里坠毁吗?p、 为什么要使用文件而不是本地存储?使用文件需要您请求其他权限,但localStorage不需要。所谓本地存储,您的意思是
Windows.storage.ApplicationData.current.local.createFileAsync(“events.txt”)?还是有别的原因?