Rails jsonb获取具有特定密钥的所有数据



如何获取该jsonb中的所有值?

item = [{"name"=>"Name 1", "value"=>"Value 1"}, {"name"=>"Name 2", "value"=>"Value 2"}]

更新:有没有一种方法可以在没有json.parse的情况下做到这一点?我认为没有它应该可以工作。

<%= data = JSON.parse(item.to_json)%>
<%= p data.collect { |item| item['value'] }

首先,您发布的第一个编码块不是ruby中的JSON,ruby中的JSON是字符串(https://ruby-doc.org/stdlib-2.6.3/libdoc/json/rdoc/JSON.html#module-JSON标签Parsing+JSON(,所以它应该看起来像这样。

item = "[{"name":"Name 1","value":"Value 1"},{"name":"Name 2","value":"Value 2"}]"

因为它是像字符串一样处理的,所以在操作数据之前需要解析它,所以代码几乎是正确的,我只是不知道为什么你首先将item设置为json,然后立即从json解析它。

data = JSON.parse(item)
p data.collect { |item| item['value'] }

最新更新