Я беру информацию из базы данных MongoDB (@bs
). @bs
имеет тонны информации, которая мне неинтересна, поэтому мне нужно, чтобы цитировать всю информацию и создавать новый объект с необходимой мне информацией.Рельсы 3: Создайте действительный объект JSON из массива данных
Для этого я создал новый массив (@final
), и я получаю информацию и добавляю ее в @final. Похоже, что информация поступает туда, когда я конвертирую ее в JSON, это не действительный объект JSON. То, что я намерен создать в @final.json
это:
{ Something: [ {Email: "[email protected]", At: "date", ....}, {...}, ....] }
Но когда я to_json я получаю [["At: date","Email: [email protected]","Message-id: .....
@bs = coll.find("headers.from" => email, "date" => {"$gte" => initial_date, "$lte" => Time.now.utc})
@bs = @bs.to_a.map { |obj| obj.delete("completo"); obj.delete("_id"); obj.delete("date"); obj.delete("headers" => "content_type"); obj }
@final = Array.new
@bs.each do |a|
elem = Array.new
elem << "At: #{a["date"]}"
elem << "Email: #{a["headers"]["to"]}"
elem << "Message: #{a["headers"]["message_id"]}"
elem << "Type: #{a["headers"]["status"]}"
@final << elem
end
puts @final
@final = @final.to_json
puts @final["Email"]
Пожалуйста, помогите.
Благодаря
Спасибо. Я делаю это, но тогда я не могу сделать @final = @ final.to_json puts @final ['Email'] - Он возвращает строку «Email» – Donald
После преобразования массива в 'json' у вас есть строка. оператор '[]' в строке ищет совпадение в строке, которую он находит. Даже если @final был массивом, вам нужно будет сделать что-то вроде '@ final.first [: Email]', чтобы получить значение электронной почты для одного из объектов массива. –
Итак, после преобразования его в JSON, как мне сделать, если я хочу получить доступ к членам документа? – Donald