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,你'可能全部设置。如果您're在1.8.7,则需要安装gem。

在安装JSON gem之前,首先要意识到这个gem分布在两个变体中。只需使用gem安装json安装此gem,即可安装C扩展变体。这需要一个C编译器来安装,并且在所有系统上都可能不可用或不适用。虽然如果你可以安装这个版本,你应该。

如果您可以't安装C扩展版本高铁小知识,则应该gem安装jsonëupure。这与pure Ruby中实现的gem相同。它应该在Ruby代码运行的任何地方,所有平台和各种口译员上运行。但是,它'比C扩展版本慢得多。

安装后,有几种方法可以使用此宝石。Arequire'json&##39;(在先决条件require'rubygems'之后,如果需要的话)将需要任何可用的变体,并且如果两者都是**C扩展变体安装。Arequire'json/pure'将明确要求纯变体,而Arequire'json/ext'将明确要求C扩展变体。

解析JSON

在我们开始之前,让's定义一些简单的JSON来解析。JSON通常由web应用程序生成,并且可能非常艰巨,具有难以导航的深层层次结构。我们'从简单的事情开始。顶部le本文档的级别是散列,前两个键保持字符串,后两个键保持字符串数组。

所以解析这很简单。假设这个JSON存储在一个名为50的文件中employers.json,您可以将其解析为像so这样的Ruby对象。

和这个程序's输出。请注意,如果您'在Ruby 1.8.7上重新运行此程序,则从哈希中检索键的顺序不一定与它们重新插入的顺序相同。所以你的输出可能显得无序。

empls对象本身只是一个散列。没有什么特别的。它有4个键,就像JSON文档一样。其中两个键是字符串,两个是字符串数组。毫不奇怪,JSON忠实地转录在Ruby对象中供您阅读。

而'关于解析JSON所需的全部知识。有一些问题出现了,但这些问题将在后面的文章中讨论。对于几乎每种情况,您只需从文件或HTTP上读取JSON文档并将其馈送到JSON.parse