我正在处理一些非常“灵活”的 JSON,所以在某些情况下,一个对象可能是一个数组,有时它可能是一个字符串,有时它可能根本不存在。它的嵌套也很深。
例如,API 调用返回结果列表,每个结果可能有零个、一个或多个缩略图。如果只有一个,我想返回缩略图,如果有很多,或者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?
提前致谢。