2011-12-07 91 views
0

我想將一個對象序列化成JSON,然後通過rabbitmq通過線路發送它,然後反序列化它。在ruby中通過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 
          )} 

在另一邊,我想descerialise這樣的對象:

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\":\"[email protected]\",\"id\":null,\"lead_id\":null,\"updated_at\":null},{\"created_at\":null,\"email\":\"[email protected]\",\"id\":null,\"lead_id\":null,\"updated_at\":null}]" 

任何人都可以看到我做錯了什麼嗎?

+0

http://stackoverflow.com/questions/4464050/ruby-objects-and-json-serialization-without-rails –

+0

我的問題是,我無法解碼對象。我不明白爲什麼對象不能正確解碼。 – dagda1

回答

0

我正在使用相同的方法,或者在我身邊正常工作。可能你發送的是不正確的消息(序列化問題)。使用新的rabbitmq,您可以在兔子控制檯中檢查消息。

您可以嘗試之前打印to_json。

+0

謝謝你的擡頭。知道它應該工作並且問題在我的最後是令人欣慰的。 – dagda1