Во-первых, у хеша result
, который вы разместили, есть синтаксическая ошибка.Итак, я исправил это так:
result = {"metadata"=>{"version"=>5}, "data"=>{"paging"=>{"total_items"=>1, "number_of_pages"=>1}, "items"=>[{"type"=>"OrganizationSummary", "uid"=>"33a97e", "properties"=>{"name"=>"Google"}}]}}
Два, вы говорите, вы хотите удалить data
(удаление metadata
хорошо) из него, но значения, которые вам нужны, то есть uid
иname
, они вложены внутрь data
.Так что, если вы удалите его, вы тоже потеряете эти значения.
Я думаю, вы хотите удалить только paging
часть.Вот мое решение для этого:
result.delete('metadata')
=> {"version"=>5}
result['data'].delete('paging')
=> {"total_items"=>1, "number_of_pages"=>1}
# Now the values you need,
# `uid`(s) - can be more than one, as `items` is an array
result['data']['items'].map { |h| h['uid'] }
=> ["33a97e"]
# `name`(s)
result['data']['items'].map { |h| h['properties']['name'] }
=> ["Google"]