如何获取该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'] }