J'ai affaire à un JSON qui est assez "flexible", donc dans certains cas, un objet peut être un tableau, parfois une chaîne, et parfois il peut ne pas exister du tout. C'est aussi profondément imbriqué. Par exemple, l'appel d'API renvoie une liste de résultats et chaque résultat peut avoir zéro, une ou plusieurs vignettes. Je veux retourner la vignette s'il n'y en a qu'une, la première s'il y en a plusieurs, ou nil
s'il n'y en a pas.Ruby et JSON: Rendre l'accès aux objets plus tolérant
Y at-il un moyen facile de le faire avec la bibliothèque JSON de Ruby?
En ce moment, je fais quelque chose comme ceci:
def get_thumbnail
if @json['results']
result = @json['results'].first
thumbnail = result['thumbnail']
if thumbnail
if thumbnail.class == String
thumbnail
elsif thumbnail.class == Array
thumbnail.first
else
nil
end
else
nil
end
end
end
Y at-il une manière plus tolérante pour accéder au JSON, autre que d'avoir à vérifier la présence et le type de chaque « niveau » Je m accéder?
Merci d'avance.