如何获取JSON中对象数组的某些属性
问题描述:
我有一个JSON对象数组。如何获取JSON中对象数组的某些属性
arr = [{'a'=> 1, 'b'=> 2, 'c'=> 3}, {'a'=> 4, 'b'=> 5,'c'=> 6}, {'a'=> 4, 'b'=> 5,'c'=> 6}]
但我希望有一个新的阵列,选择“a”和“C”只有属性:
new_arr = [{'a'=> 1, 'c'=> 3}, {'a'=> 4,'c'=> 6}, {'a'=> 4,'c'=> 6}]
我尝试使用地图,1个属性只arr.map{|i| i['a']}
。 我缺少什么或有什么建议?
答
利用slice
并传递要选择
arr = [{'a'=> 1, 'b'=> 2, 'c'=> 3}, {'a'=> 4, 'b'=> 5,'c'=> 6}, {'a'=> 4, 'b'=> 5,'c'=> 6}]
arr.map{|a| a.slice('a', 'c')}
#=> [{"a"=>1, "c"=>3}, {"a"=>4, "c"=>6}, {"a"=>4, "c"=>6}]
唯一的缺点是,如果有'{'d'=> 5}',那么在这种情况下你也会得到这个 –
,它应该是'e.except('b','d')' –