所以我正在學習 ruby??,我必須在大型 JSON 中找到特定值。我需要得到這個領域,但我做不到。
我有這個json:
[{"origen"=>
{"productor"=>"Agencia Estatal de Meteorología - AEMET. Gobierno de Espa?a",
"web"=>"https://www.aemet.es", "enlace"=>"https://www.aemet.es/es/eltiempo/prediccion/municipios/horas/lagran-id01030",
"language"=>"es",
"copyright"=>"? AEMET. Autorizado el uso de la información y su reproducción citando a AEMET como autora de la misma.",
"notaLegal"=>"https://www.aemet.es/es/nota_legal"},
"elaborado"=>"2022-03-30T22:43:40",
"nombre"=>"Lagrán",
"provincia"=>"Araba/álava",
"prediccion"=>
{"dia"=>
[{"estadoCielo"=>
[{"value"=>"16", "periodo"=>"20", "descripcion"=>"Cubierto"},
{"value"=>"16n", "periodo"=>"21", "descripcion"=>"Cubierto"},
{"value"=>"82n", "periodo"=>"22", "descripcion"=>"Bruma"},
{"value"=>"16n", "periodo"=>"23", "descripcion"=>"Cubierto"}],
"precipitacion"=>[{"value"=>"0", "periodo"=>"20"}, {"value"=>"0", "periodo"=>"21"}, {"value"=>"0", "periodo"=>"22"}, {"value"=>"Ip", "periodo"=>"23"}],
"probPrecipitacion"=>[{"value"=>"5", "periodo"=>"2002"}],
"probTormenta"=>[{"value"=>"5", "periodo"=>"2002"}],
"nieve"=>[{"value"=>"0", "periodo"=>"20"}, {"value"=>"0", "periodo"=>"21"}, {"value"=>"0", "periodo"=>"22"}, {"value"=>"0", "periodo"=>"23"}],
"probNieve"=>[{"value"=>"0", "periodo"=>"2002"}],
"temperatura"=>[{"value"=>"7", "periodo"=>"21"}, {"value"=>"6", "periodo"=>"22"}, {"value"=>"6", "periodo"=>"23"}],
"sensTermica"=>[{"value"=>"4", "periodo"=>"21"}, {"value"=>"2", "periodo"=>"22"}, {"value"=>"3", "periodo"=>"23"}],
"humedadRelativa"=>[{"value"=>"81", "periodo"=>"21"}, {"value"=>"84", "periodo"=>"22"}, {"value"=>"87", "periodo"=>"23"}]
"vientoAndRachaMax"=>
[{"direccion"=>["N"], "velocidad"=>["15"], "periodo"=>"21"},
{"value"=>"45", "periodo"=>"21"},
{"direccion"=>["NO"], "velocidad"=>["19"], "periodo"=>"22"},
{"value"=>"39", "periodo"=>"22"},
{"direccion"=>["N"], "velocidad"=>["15"], "periodo"=>"23"},
{"value"=>"44", "periodo"=>"23"}],
"fecha"=>"2022-03-30T00:00:00",
"orto"=>"07:56",
"ocaso"=>"20:34"},
我想要這個領域"fecha"=>"2022-03-30T00:00:00",
我正在嘗試這個:
def json json
puts json[0].select {|json| json["fecha"]}
end
輸出是這樣的:{} 所以我知道我做得很糟糕,因為我得到了空白輸出。
知道那里發生了什么嗎?
謝謝!
uj5u.com熱心網友回復:
好的,所以為了通過哈希導航(因為您共享的不是 JSON 本身,而是 ruby?? 哈希。),您可以使用該dig方法。--> 這里的使用示例:https ://apidock.com/ruby/Hash/dig (我也推薦閱讀 Rails 檔案。)
您共享的內容也不是有效的哈希,但我嘗試自己關閉丟失的括號,這很有效。嘗試這個:
def json json
json.dig(0, 'prediccion', 'dia', 0, 'fecha')
end
這是假設您總是想要根陣列的第一個元素和陣列的第一個元素dia。
如果您想動態獲取它們,則必須遍歷它們并將 0 替換為回圈索引。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/455219.html
下一篇:使用DriveAPI創建空檔案
