def f(key,value) "function(v) { data = v.values[0].data; dt = eval('(' + data + ')') value = dt['#{key}'] if (value == '#{value}') { return [data]; } return []; }" mr.map(mapfunc, :keep => true) json_array = mr.run objects_array = json_array.map {|s| JSON.parse s} end