J'ai besoin d'implémenter un utilitaire shell simple dans Ruby qui analyse JSON à partir d'un fichier et y renvoie un champ particulier.Comment obtenir un champ particulier de JSON dans Ruby
exemples JSON à parsés:
{"status": "fail", "messages": ["Out of capacity"]}
{"status": "success", "messages": [], "result": {"node": {"ip": "1.2.3.4", "description": "", "id": 974, "name": "VM#3"}}}
L'idée est de créer un utilitaire CLI avec deux paramètres: fichier JSON à lire et sur le terrain de JSON pour extraire:
./get_json_field.rb ~/tmp.XXXXXX 'result.node.ip'
./get_json_field.rb ~/tmp.XXXXXX 'messages.0'
Je me bats comment mapper le deuxième paramètre à la structure de données JSON analysée dans Ruby. Je peux écrire un itérateur à coup sûr, en divisant la chaîne en tableau en utilisant le point comme séparateur et en passant par chaque élément, mais cela ne ressemble pas à une solution élégante.
Des suggestions pour une manière plus élégante?
Pourquoi ne pas sembler elegent? Cela me semble assez naturel! –
Je pense toujours à une solution semblable à une carte pour cela –