2010-02-04 129 views
9

我對JSON完全陌生,未來我可能需要使用它,所以我做了一些閱讀回合。關於SO的JSON有很多問題。我發現使用谷歌的文章堆,我讀了json.org,但我不知道如何存儲JSON數據。如何將JSON數據存儲在磁盤上?

JSON是一種輕量級的數據交換格式。那麼我如何存儲它的數據呢?在文件中?在數據庫中?有關係嗎?

我可以用它來傳遞數據到jsTree(jsTree是一個基於JavaScript的跨瀏覽器樹組件,它被封裝成一個jQuery插件)。我想了解我將如何存儲數據?在一個文件中?文本文件?在WordPress的數據庫?哪一個更快?更好用?

現狀任何編碼之前,沒有任何應用程序中運行

  • 我準備源數據,到目前爲止,我源CSV文件235KB大小約700lines(線=未來的節點/樹葉)。我使用csv文件來收集數據,然後我將上傳/更新Web服務器上的數據源。
  • 這個數字將會增長,比如說每週5-10個。
  • 該文件位於本地計算機上,並將以某種方式存儲在WebHosting服務器上。請注意,我會用在WordPress
  • 整個應用jsTree + JSON我想我可以用這個:Now parse Client side json with Wordpress
+1

對於數據交換格式,通常數據已經存儲在數據庫中,格式僅僅是數據的瞬態表示。我認爲很少存儲這種表示方式(無論是JSON,XML等)。例如,您可能會從某個第三方的Web服務獲取JSON,但它們不一定會_store_ JSON。 – 2010-02-04 19:52:03

+0

@邁克爾復活節:我目前沒有存儲數據。我正在發現它將如何發生。 – Radek 2010-02-04 20:15:00

回答

25

我想首先要明白的是,JSON是代表信息只是其中一種方法。你可以存儲你喜歡的數據。如果你有一個關係數據庫,你可能會想出一個合理的方式來回轉換數據。

{ 
    "id": 321 
    "name" : "Jim", 
    "age" : 27, 
    "email" : "[email protected]" 
} 

可能會以XML來表示

<person> 
    <id>321</id> 
    <name>Jim</name> 
    <age>27</age> 
    <email>[email protected]</email> 
</person> 

或者可能存儲在看似

_______________________________________ 
| id | name | age | email    | 
======================================== 
|321 | Jim | 27 |[email protected]  | 
---------------------------------------- 

所以,如果你可以,但是你想存儲的信息的表格。您只需要一些方法將數據序列化/反序列化爲任何您想要的形式。

所有這一切是說,如果你需要的JSON和存儲爲文件將無法正常工作,你可能想看看CouchDBMongoDB。它們是實際存儲JSON文檔的面向文檔的數據庫。他們會讓你存儲你想要的任何JSON文件。您可以構建視圖並直接查詢數據,而無需將數據轉換爲不同的表單。

+1

@Steve g:如果所有的事情都會發生在'wordpress'上,那麼建立另一個數據庫是不是個好主意? – Radek 2010-02-04 19:50:47

4

像CouchDB這樣的東西是一個數據庫,它在內部存儲在一個文件中。大多數人根本沒有/存儲/ JSON,他們生成併發送它,或解析它並處理它。

JSON是序列化數據的理想格式,但同樣的注意事項適用於任何其他序列化格式。你是否將XML存儲在數據庫中?通常不會。不同之處在於XML包含人類使用的犧牲,而JSON使得犧牲易於解析和快速。

JSON並非真正取代CSV。將CSV看作鬆散的表格特定轉儲機制。在Excel中有一個JSON導出沒有太大的意義。

1

將數據存儲在數據庫或文件中的天氣並不重要。關鍵是你需要能夠把它作爲一個字符串來獲取(使用HTTP或者一些服務器端腳本)。

例如,如果將其保存爲名爲data.json的文件,則可以使用ajax來獲取它,但是如果將其存儲在數據庫中,則需要使用某種服務器腳本(儘管如此,仍然可以使用ajax )。

如果您有任何使用xml的經驗,只要將json看作是同一件事情,那只是數據的字符串表示形式。

1

JSON是一種交換格式。如果需要,您可以將其存儲在文件或數據庫中,就像其他任何格式一樣,不過這是否是一個好主意取決於您正在做什麼。

你說「迄今爲止我的源代碼csv文件大小爲235KB,大約有700條(節點/葉)」。你在考慮從CSV轉換到JSON嗎? (你不會說。)你也會說「這個數字會增長,比如說每週5-10個」。 CSV或JSON對於應用增量更改的大文件都不是最佳選擇,但使用CSV可以有效地追加數據。如果追加是你所做的一切,你可以堅持使用CSV,但是如果你需要做其他修改,我可能會將數據分解成數據庫,這樣可以更有效地進行更新。實際上,你談論的數據量非常小,每週的更新數量很少,因此你可能不需要擔心效率問題。做你想做的。 :-)

+0

@Laurence Gonsalves:我認爲235KB的html會太大。所以我可能需要使用別的東西。 – Radek 2010-02-04 20:06:31

+0

@Laurence:當談到增量更改時,我正在考慮將增量數據存儲在不同文件中的設計,並應用一些邏輯來確定要查詢哪個文件或聚合查詢!例如:(1)顯示具有頁面調整的表格數據的頁面。 (2)一個顯示各國人口報告的網頁正在從 .json文件中獲取數據,而不是將這些數據存儲在一個.json文件中,我將它們存儲在10個.json文件中。我會將增量數據存儲在其他> .json文件中。在生成報告的同時,我會加重信息。你的想法是什麼? – Gana 2015-08-13 04:07:08

+0

@ user2504156聽起來像它需要一個自己的問題。評論對我來說太困難,無法理解你所描述的內容,或者對我提供任何有意義的想法。我不知道爲什麼要存儲JSON而不是存儲在數據庫中,然後只使用JSON傳輸到客戶端。 – 2015-08-18 18:41:07

相關問題