JSON寶石

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

安裝JSON Gem

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

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

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

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

解析JSON

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

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

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

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

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