【Ruby学习笔记】24.Ruby JSON及RubyGems

前言

本章介绍Ruby的JSON和RubyGems。

Ruby JSON

本章节我们将为大家介绍如何使用 Ruby 语言来编码和解码 JSON 对象。

环境配置
在使用 Ruby 编码或解码 JSON 数据前,我们需要先安装 Ruby JSON 模块。在安装该模块前你需要先安装 Ruby gem,我们使用 Ruby gem 安装 JSON 模块。 但是,如果你使用的是最新版本的 Ruby,可能已经安装了 gem,解析来我们就可以使用以下命令来安装Ruby JSON 模块:

$gem install json

使用 Ruby 解析 JSON
以下为JSON数据,将该数据存储在 input.json 文件中:

input.json 文件

{
  "President": "Alan Isaac",
  "CEO": "David Richardson",
  
  "India": [
    "Sachin Tendulkar",
    "Virender Sehwag",
    "Gautam Gambhir"
  ],
 
  "Srilanka": [
    "Lasith Malinga",
    "Angelo Mathews",
    "Kumar Sangakkara"
  ],
 
  "England": [
    "Alastair Cook",
    "Jonathan Trott",
    "Kevin Pietersen"
  ]
}

以下的 Ruby 程序用于解析以上 JSON 文件;

实例

#!/usr/bin/ruby
require 'rubygems'
require 'json'
require 'pp'
 
json = File.read('input.json')
obj = JSON.parse(json)
 
pp obj

以上实例执行结果为:

{"President"=>"Alan Isaac",
 "CEO"=>"David Richardson",

 "India"=>
  ["Sachin Tendulkar", "Virender Sehwag", "Gautam Gambhir"],

"Srilanka"=>
  ["Lasith Malinga ", "Angelo Mathews", "Kumar Sangakkara"],

 "England"=>
  ["Alastair Cook", "Jonathan Trott", "Kevin Pietersen"]
}

Ruby RubyGems

RubyGems 是 Ruby 的一个包管理器,它提供一个分发 Ruby 程序和库的标准格式,还提供一个管理程序包安装的工具。

RubyGems 旨在方便地管理 gem 安装的工具,以及用于分发 gem 的服务器。这类似于 Ubuntu 下的apt-get, Centos 的 yum,Python 的 pip。

RubyGems大约创建于2003年11月,从Ruby 1.9版起成为Ruby标准库的一部分。

如果你的 Ruby 低于 1.9 版本,也可以通过手动安装:

首先下载安装包:https://rubygems.org/pages/download。
解压并进入目录,执行命令:ruby setup.rb
更新 RubyGems 命令:

$ gem update --system          # 需要管理员或root用户

Gem
Gem 是 Ruby 模块 (叫做 Gems) 的包管理器。其包含包信息,以及用于安装的文件。

Gem通常是依照".gemspec"文件构建的,包含了有关Gem信息的YAML文件。Ruby代码也可以直接建立Gem,这种情况下通常利用Rake来进行。

gem命令
gem命令用于构建、上传、下载以及安装Gem包。

gem用法
RubyGems 在功能上与 apt-get、portage、yum 和 npm 非常相似。

安装:

gem install mygem

卸载:

gem uninstall mygem

列出已安装的gem:

gem list --local

列出可用的gem,例如:

gem list --remote

为所有的gems创建RDoc文档:

gem rdoc --all

下载一个gem,但不安装:

gem fetch mygem

从可用的gem中搜索,例如:

gem search STRING --remote

gem 包的构建
gem命令也被用来构建和维护.gemspec和.gem文件。

利用.gemspec文件构建.gem:

gem build mygem.gemspec

修改国内源
由于国内网络原因(你懂的),导致 rubygems.org 存放在 Amazon S3 上面的资源文件间歇性连接失败。

所以你会与遇到 gem install rack 或 bundle install 的时候半天没有响应,具体可以用 gem install rails -V 来查看执行过程。

因此我们可以将它修改为国内的下载源: https://gems.ruby-china.com
首先,查看当前源:

$ gem sources -l
*** CURRENT SOURCES ***

https://rubygems.org/

接着,移除 https://rubygems.org/,并添加国内下载源 https://gems.ruby-china.com/。

$ gem sources --remove https://rubygems.org/
$ gem sources -a https://gems.ruby-china.com/
$ gem sources -l
*** CURRENT SOURCES ***

https://gems.ruby-china.com/
# 请确保只有 gems.ruby-china.com
$ gem install rails

如果你使用 Gemfile 和 Bundle (例如:Rails 项目)
你可以用bundle的gem源代码镜像命令。

$ bundle config mirror.https://rubygems.org https://gems.ruby-china.com/

这样你不用改你的 Gemfile 的 source。

source 'https://rubygems.org/'
gem 'rails', '4.1.0'
...

你可能感兴趣的:(Ruby学习笔记,ruby,json,学习,后端,开发语言)