如何将对象转换为数组?
How to convert an object to an array?
我正在创建一个 Rails 5.2 应用程序。
在这个应用程序中,我让我的用户将他们的设置保存到 JSONB 属性中。
数据是从 Android 应用发布的,如下所示:
{"email"=>true, "alert"=>true, "push"=>true}
我需要将此数据作为数组保存到数据库中。
这是我想要的结果。
[{"email"=>true}, {"alert"=>true}, {"push"=>true}]
我试过这个:
object = {"email"=>true, "alert"=>true, "push"=>true}
object.to_a
但它呈现:
[["email", true], ["alert", true], ["push", true]]
用你试过的to_a试试这个
object = {"email"=>true, "alert"=>true, "push"=>true}
result = object.to_a.map{ |b| [b].to_h }
或者
object = {"email"=>true, "alert"=>true, "push"=>true}
result = object.map{ |key, val| [[key, val]].to_h }
arr=h.map{|k,v| [k,v].to_h}
p arr
我正在创建一个 Rails 5.2 应用程序。 在这个应用程序中,我让我的用户将他们的设置保存到 JSONB 属性中。
数据是从 Android 应用发布的,如下所示:
{"email"=>true, "alert"=>true, "push"=>true}
我需要将此数据作为数组保存到数据库中。 这是我想要的结果。
[{"email"=>true}, {"alert"=>true}, {"push"=>true}]
我试过这个:
object = {"email"=>true, "alert"=>true, "push"=>true}
object.to_a
但它呈现:
[["email", true], ["alert", true], ["push", true]]
用你试过的to_a试试这个
object = {"email"=>true, "alert"=>true, "push"=>true}
result = object.to_a.map{ |b| [b].to_h }
或者
object = {"email"=>true, "alert"=>true, "push"=>true}
result = object.map{ |key, val| [[key, val]].to_h }
arr=h.map{|k,v| [k,v].to_h}
p arr