我想解析從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的階梯寫這個。這是做這件事最好的方式,它不會比這更多的'紅寶石'。 –
哦..謝謝。 –