J'analyse un fichier JSON qui a été converti en structures de données Ruby. J'ai des enregistrements qui ressemblent à ceci :
"uros"=>[{"ure"=>"zip*less", "prs"=>[{"mw"=>"zip-ls", "sound"=>{"audio"=>"ziples01", "ref"=>"c", "stat"=>"1"}}]
ou comme ça :
"uros"=>[{"ure"=>"gas chromatographic", "fl"=>"adjective"}]
Je veux extraire la valeur de hachage pour la clé audio
lorsqu'il apparaît.
Quelle est la manière propre de tester la présence d'une clé en Ruby ? Voici mes tentatives jusqu'à présent. La variable entry
représente la structure de données englobante :
if entry["uros"] != nil # Nope
#if entry["uros"]["prs"] != nil # Nope
#if not entry["uros"]["prs"]["sound"]["audio"].first.instance_of? nil # Nope
#if ! entry["uros"]["prs"].instance_of? nil # Nope
puts entry["uros"].first["prs"].first["sound"]["audio"]
end
Le message d'erreur que je reçois est soit :
undefined method `first' for nil:NilClass (NoMethodError)
ou inversement :
undefined method `[]' for nil:NilClass (NoMethodError)
Comment feriez-vous ?