2011-08-05 39 views
0

如果我比較包含相同數據的2個數據文件,但其中一個數據是XML格式,另一個是JSON,然後將這兩個文件壓縮(pkzip)。他們如何比較文件大小?我的猜測是它們可能具有相同的大小,因爲壓縮將使用XML的更詳細的元素名稱。什麼是較大的:壓縮JSON或壓縮XML?

只是好奇,謝謝你的想法。

回答

0

如果您要表示混合內容,那麼XML可能會更小,因爲JSON如此低效地處理混合內容。但是,如果你對JSON感興趣,那麼你可能對混合內容不感興趣。事實上,這就是爲什麼簡單數據的XML可能會更大:如果一個給定的消息的信息內容被表示爲一種允許的可能消息數量較多的語言,那麼該消息的信息內容會更高(使用更多的位)。

+0

這個答案聽起來非常貼心 - 謝謝! – brainray

1

簡而言之,壓縮的XML更大,因爲它具有相同數量的信息以及標籤。

+2

一個實際的測試實際上會證實這一點..... – Soren

+2

然而,XML標籤*壓縮良好*所以「多大?」是真正的問題 - 根據我的經驗並不多。請記住,JSON也具有「結構」工件:大括號,冒號和引號。對於只有一小部分標籤,那麼GZIP詞典應該能夠幾乎相同地壓縮它。 – 2011-08-05 21:30:51

1

我認爲XML會更大,因爲它包含開始和結束標記。 例如:

Person: 
    Name: Naor 
    Address: none 

成爲XML:

<Person> 
    <Name>Naor</Name> 
    <Address>none</Address> 
</Person> 

而且在JSON:

Person: {Name:"Naor", Address:"none"} 
+0

如果文檔是典型的XML文檔,那麼相同的標籤會經常出現,所以這不會導致壓縮大小的相應增加。實際上,文檔越大,XML和JSON壓縮大小之間的差異就越小。 –

+0

@Michael Kay:我真的不知道zip或rar是如何工作的以及它們如何壓縮數據,但是如果你看看Json,就會看到那個開放標籤和關閉標籤的instad,你有{和}。如果在xml中相同的標籤會經常出現,那麼{}會經常發生。所以壓縮文件將等同於原始文件的大小差異。 – Naor

0

這將取決於文件和壓縮算法的結構,但一般JSON應該更小。我只用一個標準的Windows工具壓縮了兩個具有相同數據的文件(XML和JSON),JSON文件與XML相比有更好的結果(幾乎是原始文件的一半)。