Ruby で JSON 文字列を解析する

Nurudeen Ibrahim 2022年4月18日
Ruby で JSON 文字列を解析する

JSON(JavaScript Object Notation)は、データ交換の一般的な形式であり、主に Web アプリケーション間でデータを送受信するために使用されます。このチュートリアルでは、JSON 文字列を解析する方法を見ていきます。

JSON 値の一般的な例は次のとおりです。

  • 角かっこで囲まれた値のリスト。例:["Orange", "Apple", [1, 2]]
  • 中括弧で囲まれたキー/ペアのリスト。例:{ "name": "John", "sex": "male", "grades": [60, 70, 80, 90] }

これらの JSON 値は、たとえば外部 API からの応答として文字列形式で提供されることがあり、Ruby が機能するものに変換する必要が常にあります。それを可能にする JSON モジュールの解析メソッドがあります。

コード例:

require 'json'

json_string = '["Orange", "Apple", [1, 2]]'
another_json_string = '{ "name": "John", "sex": "male", "grades": [60, 70, 80, 90] }'

puts JSON.parse(json_string)
puts JSON.parse(another_json_string)

出力:

["Orange", "Apple", [1, 2]]
{"name"=>"John", "sex"=>"male", "grades"=>[60, 70, 80, 90]}

JSON モジュールをコードで使用できるようにするには、最初にファイルを要求する必要があります。これが、コードの最初の行で行われます。

上記の例に示すように、JSON.parsejson_string を Ruby 配列に変換し、another_json_string を Ruby ハッシュに変換します。

文字列形式ではない JSON 値がある場合は、to_json を呼び出して最初に JSON 文字列に変換し、次に JSON.parse を使用して配列またはハッシュに変換できます。

コード例:

require 'json'

json_one = ["Orange", "Apple", [1, 2]]
json_two = { "name": "John", "sex": "male", "grades": [60, 70, 80, 90] }

puts JSON.parse(json_one.to_json)
puts JSON.parse(json_two.to_json)

出力:

["Orange", "Apple", [1, 2]]
{"name"=>"John", "sex"=>"male", "grades"=>[60, 70, 80, 90]}