JSON寶石

它'易于跳入解析并使用JSONgem在Ruby中生成JSON。它提供了一個API,用于從文本解析JSON以及從任意Ruby對象生成JSON文本。它很容易成為Ruby中使用最多的JSON庫。

安裝JSON Gem

在Ruby 1.8.7上,你需要安裝一個寶石。但是,在Ruby 1.9.2中,jsongem與核心Ruby分布捆綁在一起。所以,如果你'重新使用1.9.2,你'可能全部設(shè)置。如果您're在1.8.7,則需要安裝gem。

在安裝JSON gem之前,首先要意識到這個gem分布在兩個變體中。只需使用gem安裝json安裝此gem,即可安裝C擴展變體。這需要一個C編譯器來安裝,并且在所有系統(tǒng)上都可能不可用或不適用。雖然如果你可以安裝這個版本,你應該。

如果您可以't安裝C擴展版本高鐵小知識,則應該gem安裝json?upure。這與pure Ruby中實現(xiàn)的gem相同。它應該在Ruby代碼運行的任何地方,所有平臺和各種口譯員上運行。但是,它'比C擴展版本慢得多。

安裝后,有幾種方法可以使用此寶石。Arequire'json&##39;(在先決條件require'rubygems'之后,如果需要的話)將需要任何可用的變體,并且如果兩者都是**C擴展變體安裝。Arequire'json/pure'將明確要求純變體,而Arequire'json/ext'將明確要求C擴展變體。

解析JSON

在我們開始之前,讓's定義一些簡單的JSON來解析。JSON通常由web應用程序生成,并且可能非常艱巨,具有難以導航的深層層次結(jié)構(gòu)。我們'從簡單的事情開始。頂部le本文檔的級別是散列,前兩個鍵保持字符串,后兩個鍵保持字符串數(shù)組。

所以解析這很簡單。假設(shè)這個JSON存儲在一個名為50的文件中employers.json,您可以將其解析為像so這樣的Ruby對象。

和這個程序's輸出。請注意,如果您'在Ruby 1.8.7上重新運行此程序,則從哈希中檢索鍵的順序不一定與它們重新插入的順序相同。所以你的輸出可能顯得無序。

empls對象本身只是一個散列。沒有什么特別的。它有4個鍵,就像JSON文檔一樣。其中兩個鍵是字符串,兩個是字符串數(shù)組。毫不奇怪,JSON忠實地轉(zhuǎn)錄在Ruby對象中供您閱讀。

而'關(guān)于解析JSON所需的全部知識。有一些問題出現(xiàn)了,但這些問題將在后面的文章中討論。對于幾乎每種情況,您只需從文件或HTTP上讀取JSON文檔并將其饋送到JSON.parse