如何使用ruby从json文件中获取第二级字段

我在ruby中使用json gem。 我试图打印二级字段,如[地址/城市/ born_in]。我的ruby代码是

json = File.read('person.json') person = JSON.parse(json) pp person puts person["address"]["city"]["born_in"] 

我的json文件如下..,

{“FirstName”:“John”,“lastName”:“Smith”,“age”:25,“address”:[{“streetAddress”:“21 2nd Street”,“state”:“NY”,“postalCode” :“10021”},{“city”:{“born_in”:“New York”,“living_in”:“Mumbai”}}}}

它显示以下错误..,

 parsingjson.rb:15:in `[]': can't convert String into Integer (TypeError) from parsingjson.rb:15:in `' 

您的address字段是一个数组。 您应该使用索引来引用其元素。

 puts person["address"][0]["streetaddress"] puts person["address"][1]["city"]["born_in"] 

person [‘address’]的结果是Array,你可以使用它

 puts person['address'][1]['city']['born_in']