我想解析从facebook返回的json。 现在我的想法是从facebook json获得尽可能多的细节。 所以我使用像(假设AUTH是解析JSON从Facebook)在rails中解析facebook json避免在评估nil时发生错误[]
education_array = auth['extra']['user_hash']['education']
education_array.each do |edu|
puts edu['school']['name']
puts edu['type']
puts edu['year']['name']
end
现在,这里的问题是,有些人可能已经增加了学校名称,但不是今年。 如此明显
EDU [ '年'] [ '名'] 会抛出错误告诉 “在评估零发生错误。[]”。
我该如何避免这种情况?我认为
一个办法是把 EDU [“年”] [“名”] ||“”
但是这仍然会抛出错误的情况下,“年”本身不存在。 (这将避免错误的情况下,“名”未找到)
我不希望以下解决方案: 检查,如果AUTH [“额外”]存在 然后检查AUTH [“额外”] [” user_hash'] 然后检查auth ['extra'] ['user_hash'] ['education']是否存在 然后检查auth ['extra'] ['user_hash'] ['education'] ['year']] ['name'] 等等。
我不认为使用异常处理是一个好方法。
任何好的方法?
谢谢
但你认为这是在计算方面有什么不同? 我的意思是即使这会引起内部ifs的阶梯。不是吗? –
你可以用'if's的阶梯写这个。这是做这件事最好的方式,它不会比这更多的'红宝石'。 –
哦..谢谢。 –