Ruby

Rubyを使ってJSONファイルの読み取りと書き込みをする方法

fjordbootcampの課題でファイル作成する必要があったので色々調べていたら、JSONというファイル形式が使いやすそうなので調べてみることにしました!

What is JSON??

JSONとは、”JavaScript Object Notation”の略だそうです。

ハッシュや配列(など)で構成されたデータフォーマットなのでデータの取り扱いがしやすいことが特徴です。

require 'json'

をすることでJSON.dump(書き込み)とJSON.load(読み込み)を実行できるようになります。

JSONで扱えるデータは以下の6つです。

  1. 文字列
  2. 整数
  3. 浮動小数点数
  4. 真偽値
  5. nil
  6. ハッシュ

JSONの使い方

つづいてはJSONファイルの書き込みと読み込み方法を書いていきます。

JSONファイルの書き込み

まずはsample.jsonというからのファイルを作成します。

sample.json(ファイル名)
# 空のファイルを作成

次はsample_write.rbというJSONファイルに書き込みをするためのファイルを作り、それを実行します。

sample_write.rb(ファイル名)

require 'json'

File.open("sample.json", "a") do |file|
  hash = {"ID" => 1, "title" => "memo", "content" => "memo memo"}
  JSON.dump(hash, file)
end

実行結果は以下の通り。

sample.json(ファイル名)
{"ID":1,"title":"memo","content":"memo memo"}

しっかり書き込みがされていますね!

ちなみにsample_write.rbの3行目にあるFile.open(“sample.json”, “a”)のaはファイルの追記書き込みモードです。
試しに”a”を削除してsample.rbを実行すると、

in `write': not opened for writing (IOError)

sample.rbは実行されず、上記のエラーメッセージが出ます。
書き込みできないよ!という意味ですね。

JSONファイルの読み込み

先ほど使ったsample.jsonを読み込んでいきます。

sample.json(ファイル名)
 {"ID":1,"title":"memo","content":"memo memo"}

ファイルの読み込みはFile.readとJSON.loadを使います。

sample_read.rb

test = File.read("sample.json") do |file|
  JSON.load(file)
end

puts test

実行結果は以下のようになります。

{"ID":1,"title":"memo","content":"memo memo"}

しっかりと出力されましたね!