我有一个存储在数据库中的字符串,如下所示:
images = '[{"id":1,"type":"Image","image_id":"asdf123"},{"id":2,"type":"Image","image_id":"asdf456"},{"id":3,"type":"Image","image_id":"asdf890"}]'
Run Code Online (Sandbox Code Playgroud)
并希望将其转换为数组,以便我可以执行以下操作:
images.each do |image|
puts image.image_id
end
Run Code Online (Sandbox Code Playgroud)
这真的只是删除外方括号,然后按照这个问题的过程将Ruby字符串转换为数组或是否有更直接/优雅的方法?
该格式称为JavaScript Object Notation(JSON),可以由内置的Ruby库解析:
require 'json'
images_str = '[{"id":1,"type":"Image","image_id":"asdf123"},{"id":2,"type":"Image","image_id":"asdf456"},{"id":3,"type":"Image","image_id":"asdf890"}]'
images = JSON.parse(images_str)
images.size # => 3
images[0].class # => Hash
images[0]['image_id'] # => "asdf123"
images.each { |x| puts "#{x['id']}: #{x['image_id']}" }
# 1: asdf123
# 2: asdf456
# 3: asdf890
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3857 次 |
| 最近记录: |