使用json作为我的数据库的javascript/jquery本地应用程序

使用json作为我的数据库的javascript/jquery本地应用程序,javascript,jquery,json,Javascript,Jquery,Json,我对javascript/jQuery/Json非常陌生。我正在为自己构建一个本地应用程序(目前没有客户端)。现在,我有一个简单的表单(inputs和submit),希望使用javascrip/JQuery从用户那里获取输入,然后构建一个JSON对象并将其存储在一个文件中。我设法使用jQuery获取输入,并使用JSON.strigify()获得一个JSON对象。唯一的问题是我不知道如何用JS写文件。我搜索了一个解决方案,并了解到我可能需要使用PHP,因为JS不是用来更改文件的。 这是我的密码:

我对javascript/jQuery/Json非常陌生。我正在为自己构建一个本地应用程序(目前没有客户端)。现在,我有一个简单的表单(inputs和submit),希望使用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>
现在在“myJsonObject”中,我有一个JSON对象,我想将它写入一个本地文件。 稍后我会阅读这个文件,也许会更新其中的一些值

有人能帮我理解如何将其写入文件吗? 你可以尝试加载这个运行我的代码。希望对你有用

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

谢谢 湿婆

更新+澄清:感谢各位的回答,本地存储是我不知道的事情。从我对localStorage的理解来看,它只适合在单个域/位置中工作。(我在现场遇到)。如果我想从不同的位置运行应用程序,那该怎么办?假设只有一个人更新JSON数据,不需要同步/锁定之类的东西。现在我的文件(JS,JSON…)保存在dropbox中,这就是我今天可以从不同位置使用应用程序的方式,我没有任何其他服务器

2'nd update:我尝试了提供给我的本地存储解决方案,尽管它的功能非常强大,但它并不完全是我想要的,因为我需要在多个位置提供JSON数据(例如,我将使用我的台式机和笔记本电脑)。 如果你有其他建议,我会很高兴的


再次感谢。

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

不要将文件用作存储,请使用
localStorage
:。如果需要保存会话作用域的信息,应该使用
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');

在某些浏览器中保存文件是可能的,但这可能会在将来被删除,所以除非你必须这样做,否则我不会使用它。 本文展示了如何-

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


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

谢谢iftah,我在阅读了您的答案后更新了我的Q。如果可能的话,我想知道你的想法。我认为这个问题的更新应该是一个新的问题,因为它是一个完全不同的问题(而不是澄清之类的)。留下这个关于保存文件的问题,开始一个关于本地存储的新问题。但无论如何,要回答你的问题-本地存储是本地的-它只会出现在一台计算机和一个浏览器中(即,如果你在firefox中打开网页,它的本地存储将与chrome不同),如果你在另一台计算机的firefox中打开它,它将再次拥有不同的本地存储。不同的域有不同的本地存储-因此在dl.dropboxusercontent.com下,所有网页都有相同的本地存储,只是为了确保我理解,我更新了代码以使用本地存储。现在:1)在我的桌面上从不同的浏览器运行时,localStorage是不同的。2) 当从相同类型的浏览器、不同的选项卡/窗口运行,但在dropbox中加载相同的url时,我会得到相同的本地存储。3) 在我的笔记本电脑上加载相同的dropbox URL时,我看不到相同的本地存储。-->相同的域是不够的,我还需要有相同的计算机(=位置)。正确的?再次感谢是的。localStorage存储在浏览器中,因此在不同的浏览器或不同的计算机中显然不可能相同。棘手的是,浏览器将不同的域分开——一个域只能访问自己的数据。这是一项安全功能,因此evilsite.com脚本将无法访问goodsite.com存储的数据。但是所有打开的goodsite.com标签页都可以访问相同的数据。事实上,JS不是用来写文件的。localStorage似乎是一个有趣的想法,但我还需要从不同位置/域运行应用程序的选项,因此我需要让我的JSON数据可以从所有位置访问。现在不需要锁定/同步,因为我是唯一使用此应用程序的人。您使用Dropbox的解决方案比我能想到的任何解决方案都要好。不错!你好,阿尔贝托,谢谢你的回答。我在代码中添加了本地存储,虽然我认为这是一个很好的功能,但它并没有真正帮助我,因为我需要长时间保存数据+在不同的位置使用它,而不仅仅是在家里的桌面上。我不能依赖不同BRT用户的不同存储容量,我需要保存大量数据等。好的,那么这不是一个合适的解决方案^^
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');