是否可以使用 java 应用程序将 JSON 对象传递到 RabbitMQ 队列?

Is it possible to pass JSON object to the RabbitMQ queue using java application?

我想将 JSON 对象传递给 RabbitMQ 队列。

在下面的代码中,我使用 obj.toJSONString().getBytes() 将 Json 对象转换为字符串,是否可以在队列中传递 JSON 对象而不是作为字符串传递。

JSONObject obj = new JSONObject();
obj.put("Transaction","Test value");        
channel.basicPublish("", queueName, null, obj.toJSONString().getBytes()); 
System.out.println(" [x] Sent '" + obj.toJSONString() + "'"); 

不 这不可能 在 Rabbit MQ 中,如果对象类型实现了 Serializable 接口,则可以传递对象。

还有另一种编写方法是使用 apache-commons jar 序列化您的对象:

SerializationUtils.serialize(obj);

这家伙会将对象序列化为字节数组进行存储。

我们只能将数据作为字节发送到 rabbitmq 队列。所以我们必须将 json 对象转换为字符串。在您的代码片段中,您已使用代码 - obj.toJSONString().getBytes() 完成。这是正确的做法。

Rabbit MQ 可以传递实现了 Serializable 接口的对象。

public class obj 实现 Serializable { ...你的目标代码在这里 }