Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby-如何将字符串解析为哈希数组_Ruby_Arrays_Hash - Fatal编程技术网

Ruby-如何将字符串解析为哈希数组

Ruby-如何将字符串解析为哈希数组,ruby,arrays,hash,Ruby,Arrays,Hash,我在数据库中存储了一个字符串,如下所示: images = '[{"id":1,"type":"Image","image_id":"asdf123"},{"id":2,"type":"Image","image_id":"asdf456"},{"id":3,"type":"Image","image_id":"asdf890"}]' 并将其转换为数组,以便执行以下操作: images.each do |image| puts image.image_id end 这真的只是一个删除

我在数据库中存储了一个字符串,如下所示:

images = '[{"id":1,"type":"Image","image_id":"asdf123"},{"id":2,"type":"Image","image_id":"asdf456"},{"id":3,"type":"Image","image_id":"asdf890"}]'
并将其转换为数组,以便执行以下操作:

images.each do |image|
    puts image.image_id
end
这真的只是一个删除外部方括号的问题,然后按照此问题的过程进行操作,还是有一个更直接/更优雅的方法?

该格式被调用,并可以由一个:

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\u str)
images.size#=>3
图像[0]。类#=>哈希
图像[0]['image_id']#=>“asdf123”
images.each{x}放置“{x['id']}:{x['image\u id']}”
#1:asdf123
#2:asdf456
#3:asdf890

问题不清楚。数据库的存储格式是什么?这不是移除外部方括号的问题。@sawa为什么不清楚?问题说明“我有一个字符串存储在数据库中”,它存储为字符串。仅供参考,世界上有多种数据库格式。另外,您提供的不是有效的Ruby字符串。谢谢,我是这么想的,我一直在尝试循环使用
JSON的结果。使用
images解析
。每个人都做| image |
,但是不断地为nil:NilClass获取
未定义的方法“each”
我这样做是错误的吗?@waffl:没有看到确切的代码和数据,很难说为什么你会看到这个错误;但是,我的猜测是,您实际上没有解析您期望的JSON字符串,因此您得到的是一个nil值而不是一个数组。您是正确的–我没有解析正确的字符串,这非常有效!