我想将一个对象序列化为JSON,通过rabbitmq将其发送到线路,然后反序列化。
我有以下对象,我正在序列化:
lead = Lead.new
lead.company = 'some company'
operation = proc{ AMQP::Exchange.default.publish(
lead.to_json,
:routing_key => header.reply_to,
:correlation_id => header.correlation_id
)}
另一方面,我试图像这样下载对象:
callback_queue.subscribe do |header, body|
puts "received #{body.inspect}"
lead = ActiveSupport::JSON.decode body
puts lead.company #NoMethodError: undefined method `company' for #<Array:0x6fe03f3b>
json奇怪地是一个由3个哈希组成的数组,看起来像这样。
[{\"created_at\":null,\"email\":\"dagda1@scotalt.net\",\"id\":null,\"lead_id\":null,\"updated_at\":null},{\"created_at\":null,\"email\":\"paul.cowan@continuity2.com\",\"id\":null,\"lead_id\":null,\"updated_at\":null}]"
任何人都能看到我做错的事吗?
答案 0 :(得分:0)
我或多或少地使用相同的方法,并在我身边正常工作。可能是您发送了错误的消息(序列化问题)。使用新的rabbitmq,您可以在兔子Web控制台中检查消息。
您可以尝试先打印to_json。