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

这篇具有很好参考价值的文章主要介绍了【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。文章来源地址https://www.toymoban.com/news/detail-411182.html

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

到了这里,关于【Ruby学习笔记】24.Ruby JSON及RubyGems的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker学习笔记24

    Docker Swarm 搭建: 主机名 系统版本 IP地址 功能 swarm-1 centos7.9 192.168.17.10 管理节点 swarm-2 centos7.9 192.168.17.20 工作节点 swarm-3 centos7.9 192.168.17.30 工作节点 CPU、Memory、Disk不做要求。 准备IP地址和主机名: ntp: 关闭防火墙: 关闭SELinux:  如果第一次配置,需要重启系统。 虚拟机

    2024年02月12日
    浏览(27)
  • WPF实战学习笔记24-首页编辑与完成

    indexview添加Listbox控件的鼠标双击行为 添加todo、memo的编辑命令 indexviewmodel添加对应的更新事件处理 添加ToggleButton与后台的绑定 将ToggleButton的ischeck绑定到status属性 添加bool int 转换器 添加完成命令 添加完成功能函数 Listbox添加行为 给行为添加命令空间 文件:Mytodo.Views.IndexV

    2024年02月14日
    浏览(26)
  • Linux shell编程学习笔记24:函数定义和使用

    *20231113 补充了实例使用for循环来简化代码的内容 为了实现模块化设计和代码重用,很多编程语言支持函数或过程,Linux shell也支持函数定义和调用。 Linux shell中的函数与其它编程语言很多有相似之处,也有自己独特之处。 其中: function是 Shell 中的,专门用来定义函数

    2024年02月05日
    浏览(46)
  • 1.前言和介绍

    从零学习算法部署-TensorRT篇 杜老师推出的 tensorRT从零起步高性能部署 课程,之前有看过一遍,但是没有做笔记,很多东西也忘了。这次重新撸一遍,顺便记记笔记 本次主要是对课程的内容和所需环境做一个简要的介绍 课程大纲可看下面的思维导图 本课程以 TensorRT 和 PyTor

    2024年02月13日
    浏览(36)
  • WebGL前言——WebGL相关介绍

    第一讲内容主要介绍WebGL技术和相应的硬件基础部分,在初级课程和中级课程的基础上,将技术和硬件基础进行串联,能够对WebGL从产生到消亡有深刻全面的理解。同时还介绍WebGL大家在初级课程和中级课程中的一些常见错误以及错误调试的办法。 先热身一下吧,看个问题:如

    2023年04月08日
    浏览(32)
  • 【RabbitMQ教程】前言 —— 中间件介绍

                                                                       💧 【 R a b b i t M Q 教程】前言——中间件介绍 color{#FF1493}{【RabbitMQ教程】前言 —— 中间件介绍} 【 R abbi tMQ 教程】前言 —— 中间件介绍 💧           🌷 仰望天空,妳

    2024年02月08日
    浏览(60)
  • NRF24L01 2.4G无线模块浅析(学习笔记)

    仅作为个人学习笔记 nRF24L01是由NORDIC生产的工作在2.4GHz~2.5GHz的ISM 频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型“SchockBurst”模式控制器、功率放大器、晶体振荡器、调制器和解调器。 应用领域 ● 无线鼠标 键盘 游戏机操纵杆 ● 无线门禁 ● 无线数据通

    2024年01月16日
    浏览(31)
  • itop-3568开发板驱动学习笔记(24)设备树(三)时钟实例分析

    《【北京迅为】itop-3568开发板驱动开发指南.pdf》 学习笔记 设备树中的时钟信息以时钟树形式体现,时钟树包括时钟的属性和结构等信息,驱动在进行时钟初始化时,会从设备树中获取对应的时钟参数。 在设备树中,时钟分为消费者和生产者。 #clock-cells 代表时钟的路数,

    2024年02月01日
    浏览(23)
  • Ruby 趣学笔记(一)

    本文写于 2020 年 5 月 6 日 Ruby 趣学笔记(一) 变量 变量声明 变量类型 常量 输出 字符串 字符串操作 Array 数组的遍历 数组的连接 怎么判断该变量是否是数组 函数 普通函数 传参的函数 解包参数 部分参数解包 参数的默认值 传入一个散列 class class 下面有啥方法? 如何判断这

    2024年01月20日
    浏览(27)
  • Python学习笔记(十九)————json相关

    目录 (1)什么是json (2) json有什么用  (3) json格式数据转化  (4)Python数据和Json数据的相互转化 (1) 什么是 json JSON 是一种轻量级的数据交互格式。可以按照 JSON 指定的格式去组织和封装数据 JSON 本质上是一个带有特定格式的字符串 主要功能 : json 就是一种在各个

    2024年02月13日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包