如何将JSON数据存储在磁盘上?

时间:2010-02-04 19:46:24

标签: javascript json store

我是JSON的新手,我可能需要在将来使用它,所以我做了一些阅读。关于SO的JSON有很多问题。我找到了大量使用谷歌的文章,我读了json.org,但我不明白如何存储JSON数据。

JSON是一种轻量级的数据交换格式。那么我如何存储其数据?在文件中?在数据库?这有关系吗?

我可以使用它将数据传递给jsTree(jsTree是一个基于javascript的跨浏览器树组件。它打包为jQuery插件。)它将与Wordpress一起使用。我想了解如何存储数据?在文件中?文本文件?在Wordpress数据库中?哪一个更快?更好用吗?

CURRENT STATUS 在任何编码之前,没有应用程序正在运行

  • 我正在准备源数据,到目前为止,我的源csv文件大小为235KB ,大​​约有700行(line = future nodes / leaves)。我只使用csv文件来收集数据,然后我将在Web服务器上上传/更新数据源。
  • 这个数字会增长,让我们每周说5-10。
  • 该文件位于我的本地计算机上,并将以某种方式存储在虚拟主机服务器上。请注意,我将在Wordpress中使用整个应用程序jsTree + JSON
  • 我想我可以使用它:Now parse Client side json with Wordpress

4 个答案:

答案 0 :(得分:25)

我想首先要明白的是,JSON只是表示信息的一种方式。您可以随意存储数据。如果你有一个关系数据库,你可能会想出一种合理的方法来回转换数据。

{ 
  "id": 321
  "name" : "Jim",
  "age" : 27,
  "email" : "jim@jimsoft.com"
}

可以用xml表示为

<person>
   <id>321</id>
   <name>Jim</name>
   <age>27</age>
   <email>jim@jimsoft.com</email>
</person>

或者可能存储在看起来像

的表中
_______________________________________
| id | name | age | email              |
========================================
|321 | Jim  | 27  |jim@jimsoft.com     |
----------------------------------------

因此,如果您可以存储您想要的信息。您只需要某种方法将数据序列化/反序列化为您想要的任何形式。

所有这一切,如果您需要存储 JSON并将其存储为文件将无效,您可能需要查看CouchDBMongoDB 。它们是面向文档的数据库,实际存储JSON文档。它们将允许您存储所需的任何JSON文档。您可以直接构建视图和查询数据,而无需将数据转换为不同的形式。

答案 1 :(得分:5)

像CouchDB这样的东西是一个将其内部存储在文件中的数据库。大多数人根本没有/ store / JSON,他们生成并发送它,或解析它并处理它。

JSON是一种用于序列化数据的理想格式,但同样的注意事项适用于任何其他序列化格式。您是否将XML存储在数据库中?通常不是。不同之处在于XML会牺牲人类使用,而JSON会让牺牲变得容易解析和快速。

JSON实际上不是CSV的替代品。将CSV视为松散格式化的表特定转储机制。在excel中进行JSON导出没有多大意义。

答案 2 :(得分:1)

将它存储在数据库或文件中的天气并不重要。关键是您需要能够将其作为字符串(使用HTTP或某些服务器端脚本)获取。

例如,如果将其保存为名为data.json的文件,则可以使用ajax来获取它,但如果将其存储在数据库中,则需要使用某种服务器脚本(尽管如此,您仍然可以使用ajax)

如果您对xml有任何经验,只需将json视为同一件事,它只是数据的字符串表示。

答案 3 :(得分:1)

JSON是一种交换格式。您可以将它存储在文件或数据库中,就像任何其他格式一样,但这是否是一个好主意取决于您正在做什么。

你说“到目前为止,我的源csv文件大小为235KB,大约有700行(节点/叶子)”。您在考虑从CSV切换到JSON吗? (你真的没说。)你也说“这个数字会增长,让我们每周说5-10”。对于将应用增量更改的大型文件,CSV或JSON都不是最佳选择,除了CSV,您可以有效地附加数据。如果您正在进行追加,您可以坚持使用CSV,但如果您需要进行其他修改,我可能会将数据分解为数据库,以便可以有效地进行更新。

实际上,您所谈论的数据量非常小,每周更新次数如此之少,您可能无需担心效率问题。做你想做的。 : - )