ファイルから JSON を解析し、そこから特定のフィールドを返す単純なシェル ユーティリティを Ruby で実装する必要があります。
解析する JSON の例:
{"status": "fail", "messages": ["Out of capacity"]}
{"status": "success", "messages": [], "result": {"node": {"ip": "1.2.3.4", "description": "", "id": 974, "name": "VM#3"}}}
アイデアは、次の 2 つのパラメーターを持つ CLI ユーティリティを作成することです。読み取る JSON ファイルと、JSON から抽出するフィールドです。
./get_json_field.rb ~/tmp.XXXXXX 'result.node.ip'
./get_json_field.rb ~/tmp.XXXXXX 'messages.0'
Rubyで2番目のパラメーターを解析されたJSONデータ構造にマップする方法に苦労しています。確かにイテレータを作成し、ドットをセパレータとして使用して文字列を配列に分割し、アイテムごとに処理することはできますが、これはエレガントなソリューションのようには見えません。
よりエレガントな方法の提案はありますか?