私は非常に「柔軟」な JSON を扱っているため、オブジェクトが配列である場合もあれば、文字列である場合もあれば、まったく存在しない場合もあります。また、かなり深く入れ子になっています。
たとえば、API 呼び出しは結果のリストを返し、各結果にはゼロ、1 つ、または多数のサムネイルが含まれる場合があります。サムネイルが1つしかない場合はサムネイルを返し、多数ある場合は最初のサムネイルを返し、ない場合はサムネイルを返しnilます。
RubyのJSONライブラリでこれを行う簡単な方法はありますか?
現時点では、私は次のようなことをしています:
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
アクセスしている各「レベル」の存在とタイプを確認する以外に、JSON にアクセスするより寛容な方法はありますか?
前もって感謝します。