我需要在 Ruby 中实现一个简单的 shell 实用程序,它从文件中解析 JSON 并从中返回一个特定的字段。
要解析的 JSON 示例:
{"status": "fail", "messages": ["Out of capacity"]}
{"status": "success", "messages": [], "result": {"node": {"ip": "1.2.3.4", "description": "", "id": 974, "name": "VM#3"}}}
想法是创建一个带有两个参数的 CLI 实用程序:要读取的 JSON 文件和要提取的 JSON 字段:
./get_json_field.rb ~/tmp.XXXXXX 'result.node.ip'
./get_json_field.rb ~/tmp.XXXXXX 'messages.0'
我正在努力如何将第二个参数映射到 Ruby 中解析的 JSON 数据结构。我可以肯定地编写一个迭代器,使用点作为分隔符将字符串拆分为一个数组,然后逐项遍历它,但这看起来不像是优雅的解决方案。
对更优雅的方式有什么建议吗?