Ruby on rails使用rake任务解析JSON文件



我有一个 JSON 对象的网址,看起来像 thaht :

{
 "sitesSessions" : {
   "910360_2" : {
    "name": "name",
    "adresse": "adresse"
   },
   "76590_1" : {
    "name": "name",
    "adresse": "adresse"
   }
 }
}

(这只是一个例子,真正的JSON对象很长(,我想访问这个对象中的"name"和"adresse"。

我需要创建一个 rake 任务来解析所有文档并获取名称和地址并将其插入 excel 文件中。

但是我不知道如何访问"名称"和"地址",因为我有这个"910360_2"或"76590_1",它们对于 json 中的每个对象都是不同的......

有人可以帮助我吗?

这很容易,我建议你阅读Ruby Hashes。

{
 "sitesSessions" : {
   "910360_2" : {
    "name": "name",
    "adresse": "adresse"
   },
   "76590_1" : {
    "name": "name",
    "adresse": "adresse"
   }
 }
}
>> require 'json'
=> true
>> JSON.parse(f)
=> {"sitesSessions"=>{"910360_2"=>{"name"=>"name", "adresse"=>"adresse"}, "76590_1"=>{"name"=>"name", "adresse"=>"adresse"}}}
>> JSON.parse(f)["sitesSessions"].values
=> [{"name"=>"name", "adresse"=>"adresse"}, {"name"=>"name", "adresse"=>"adresse"}]
>> JSON.parse(f)["sitesSessions"].values.map do |x|
>>   [x['name'], x['adresse']]
>> end
=> [["name", "adresse"], ["name", "adresse"]]

看起来您可以迭代返回哈希中的所有值:

hash = JSON.parse(json)
hash['sitesSessions'].values
#=> [
#     {
#       "name": "name",
#       "adresse": "adresse"
#     },
#     {
#       "name": "name",
#       "adresse": "adresse"
#     }
#   ]

最新更新