0

我对 javascript/jQuery/Json 很陌生。我正在为自己构建一个本地应用程序(目前没有客户端)。现在我有一个简单的表单(输入和提交),想用 javascrip/JQuery 从用户那里获取输入,然后构建一个 JSON 对象并将其存储在一个文件中。我设法使用 jQuery 获取输入,并使用 JSON.strigify() 我有一个 JSON 对象。唯一的问题是我不知道如何用 JS 写入文件。我搜索了一个解决方案并了解我可能需要为此使用 PHP,因为 JS 并不意味着更改文件。这是我的代码:

HTML 表单:

<form name="portfolio" id="portfolio" method="post" onsubmit="getform()">
     <p>General</p>
        Portfolio   Name: <input type="text" id="portfolioName" name="portfolioName"><br>
        Owner First Name: <input type="text" id="ownerFName" name="ownerFName"><br>
        Owner Last  Name: <input type="text" id="ownerLName" name="ownerLName"><br>
      <p>Risk Management</p>
        %stocks : <input type="text" id="stocksPerc" name="stocksPerc"><br>
     <input type="submit" value="submit">
 </form>

JS代码

function getform() {

    var portfolioName = document.portfolio.portfolioName.value;
    var ownerFname = document.portfolio.ownerFName.value;
    var ownerLname = document.portfolio.ownerLName.value;
    var stocksPerc = document.portfolio.stocksPerc.value;

    var myJsonObject =JSON.stringify({
        "general": {
            "portfolioName": portfolioName,
            "ownerFname": ownerFname,
            "ownerLname": ownerLname
        },
        "riskManagement": {
            "stocksPerc": stocksPerc
        }
    });


   alert(myJsonObject);


    event.preventDefault();
};

现在在“myJsonObject”中,我有想要写入本地文件的 JSON 对象。稍后我想阅读这个文件,并可能更新那里的一些值。

有人可以帮我理解如何将其写入文件吗?您可以尝试加载运行我的代码的此页面。希望对你有效。

注意:编程是我感兴趣的领域,但我没有研究它,我自己学习所以如果我问q做一些让你暂时失明的事情,我很抱歉:)。这也是我在这里发布的第一个问题,如果我需要改进,请随意说。

谢谢西万

更新 + 澄清:感谢各位的回答,localStorage 是我不知道的。根据我对 localStorage 的了解,它仅适用于在单个域/位置工作。(我遇到了这个问题(我在现场如果我想要从不同位置运行应用程序的选项怎么办 - 假设只有一个人更新 JSON 数据,不需要同步/锁定之类的东西。现在我的文件(JS,JSON ..)保存在保管箱中,这就是我今天可以从不同位置使用该应用程序的方式,我没有任何其他服务器。

第二次更新:我尝试了我提供的 localStorage 解决方案,尽管它具有强大的功能,但它并不完全是我想要的,因为我需要在多个位置提供 JSON 数据(我将使用例如我的台式机和笔记本电脑)。如果您有其他建议,我会很高兴。

再次感谢。

4

3 回答 3

0

查看 HTML5 localStorage API。您将能够在那里存储您的 JSON 对象并检索它们。它们将存储为键值对。您不能使用 JS AFAIK 写入文件。

于 2013-05-08T10:14:27.903 回答
0

不要使用文件作为存储,使用localStoragehttp ://diveintohtml5.info/storage.html 。如果您需要保存有关会话范围的信息,您应该使用sessionStorage,但请注意后者不是持久的。

您将如何使用它的示例:

var item = {
  "general": {
    "portfolioName": portfolioName,
    "ownerFname": ownerFname,
    "ownerLname": ownerLname
  },
  "riskManagement": {
    "stocksPerc": stocksPerc
  }
}
// set item, you should think up of a unique key for each item
localStorage.setItem('your-key', item);

// remove it if no longer needed, you don't have a lot of space
localStorage.removeItem('your-key');
于 2013-05-08T10:21:57.593 回答
0

在某些浏览器中可以保存文件,但这可能会在未来被删除 - 所以除非你必须,否则我不会使用它。本文展示了如何 - http://updates.html5rocks.com/2011/08/Saving-generated-files-on-the-client-side

您可以将 json 发布到服务器并使用服务器生成下载文件(如果这就是您所寻求的,请提出一个新问题)

最后 - 你确定要保存到文件吗?如果您只想保存和恢复数据,那么还有更好的选择(例如 localStorage、cookie、indexDb)

于 2013-05-08T10:22:04.840 回答