*** EDITED第二次表明我需要处理在多个位置查找。使用.present解析嵌套哈希? - 未定义的方法`[]'为零:NilClass(NoMethodError)
编辑,以显示例外的提高,即使内置处理器。
我目前通过响应解析来自包括我已经转换成一个散列数组的API使用
hash_table = xml_response.to_h
我面临的挑战是,有时我正在寻找的数据位于不同的位置,并且当我使用密钥方法时:
data_i_need = hash_table['key1']['key2'][0]
如果有什么也没有,它抛出这个错误:
undefined method `[]' for nil:NilClass (NoMethodError)
我已经尝试使用:
if hash_table['key1']['key2'][0].present?
data_i_need = hash_table['key1']['key2'][0]
puts "data was here"
elsif hash_table['key3']['key4'][0].present?
data_i_need = hash_table['key3']['key4'][0]
puts "data here"
elsif hash_table['key5']['key6'][0].present?
data_i_need = hash_table['key5']['key6'][0]
puts "data here"
else
"data not found"
end
但它抛出了同样的错误:
undefined method `[]' for nil:NilClass (NoMethodError)
您是否考虑过使用Nokogiri和XPath直接处理XML?可能比试图通过一堆嵌套的Hashes更容易。 – 2014-11-25 03:15:04
如果更容易,我会很高兴。 – 2014-11-25 04:30:14