如何访问哈希数组中的哈希值?

问题描述:

我有名为散列的数组entities如何访问哈希数组中的哈希值?

这里是看看阵列:

p "entities" 
    y entities 
    p "entities[0]" 
    y entities[0] 
    p "entities[1]" 
    y entities[1] 
    p "entities[2]" 
    y entities[2] 

输出:

"entities" 
--- | 
--- 
- :text: Berlin 
    :links: 
    - http://dbpedia.org/resource/Berlin 
- :text: Jan Karski 
    :links: 
    - http://dbpedia.org/resource/Jan_Karski 
- :text: God 
    :links: 
    - http://dbpedia.org/resource/God 
"entities[0]" 
--- "-" 
"entities[1]" 
--- "-" 
"entities[2]" 
--- "-" 

我无法弄清楚如何访问各个散列。当我做p entities[0]时应该有什么东西出来?

entities.kind_of? String是真的吗?它看起来像实体实际上是一个YAML字符串。因此,实体[0/1/2]是YAML的前三个破折号。

+0

就是这样,我忘了连载补充:实体模型。感谢您的帮助,我会标记为正确的 – ben 2011-03-10 03:44:00

该副本是否正确?输出,粘贴到IRB会话出来作为一个单独的字符串,而不是一个数组:

 
ruby-1.9.2-p0 > YAML::parse("--- | 
ruby-1.9.2-p0"> --- 
ruby-1.9.2-p0"> - :text: Berlin 
ruby-1.9.2-p0"> :links: 
ruby-1.9.2-p0"> - http://dbpedia.org/resource/Berlin 
ruby-1.9.2-p0"> - :text: Jan Karski 
ruby-1.9.2-p0"> :links: 
ruby-1.9.2-p0"> - http://dbpedia.org/resource/Jan_Karski 
ruby-1.9.2-p0"> - :text: God 
ruby-1.9.2-p0"> :links: 
ruby-1.9.2-p0"> - http://dbpedia.org/resource/God 
ruby-1.9.2-p0"> ").value 
=> "--- \n- :text: Berlin\n :links: \n - http://dbpedia.org/resource/Berlin\n- :text: Jan Karski\n :links: \n - http://dbpedia.org/resource/Jan_Karski\n- :text: God\n :links: \n - http://dbpedia.org/resource/God\n" 

你的散列entitles可能不是真正的数组。 看看这个:

irb(main):001:0> e = [{:a=>1,:b=>2},{:c=>3,:d=>4}] 
irb(main):002:0> p e 
[{:a=>1, :b=>2}, {:c=>3, :d=>4}] 

尝试entitles.classentitles[0].class