微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

activemq传递json

ActiveMQ是一种流行的消息队列软件,它具有高性能,可靠性和扩展性的特点。它是用Java编写的,支持许多编程语言,并可以在不同的操作系统上运行。在使用ActiveMQ传递数据时,其中一种格式是JSON。

{
   "name": "John","age": 30,"city": "New York"
}

activemq传递json

JSON(JavaScript对象表示法)是一种轻量级的数据格式,通常用于客户端和服务器之间的数据交换。JSON数据可以被序列化为字符串格式,并且在传输过程中可以使用ActiveMQ进行编码和解码。

ActiveMQ提供了一个名为“ActiveMQ Object Message”的消息类型。此类型消息可以传递Java对象,其中包括JSON对象。使用ActiveMQ发送JSON数据的示例代码如下所示。

import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
import org.json.JSONObject;

public class JsonSender {
   public static void main(String[] args) {
      ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
      Connection connection = connectionFactory.createConnection();
      connection.start();
      Session session = connection.createSession(false,Session.AUTO_ACKNowLEDGE);
      Destination destination = session.createQueue("jsonqueue");
      MessageProducer producer = session.createProducer(destination);
      JSONObject jsonObject = new JSONObject();
      jsonObject.put("name","John");
      jsonObject.put("age",30);
      jsonObject.put("city","New York");
      ObjectMessage message = session.createObjectMessage(jsonObject.toString());
      producer.send(message);
      session.close();
      connection.close();
   }
}

在这个示例中,我们使用JSONObject类创建了一个JSON对象,然后将其作为String类型传递给ActiveMQ Object消息,这将被发送到名称为“jsonqueue”的队列。我们还需要添加ActiveMQ jar文件以使用ActiveMQ。

在接收端,我们可以使用类似的代码来接收JSON消息。示例代码如下:

import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
import org.json.JSONObject;

public class JsonReceiver {
   public static void main(String[] args) {
      ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
      Connection connection = connectionFactory.createConnection();
      connection.start();
      Session session = connection.createSession(false,Session.AUTO_ACKNowLEDGE);
      Destination destination = session.createQueue("jsonqueue");
      MessageConsumer consumer = session.createConsumer(destination);
      Message message = consumer.receive();
      if (message instanceof ObjectMessage) {
         ObjectMessage objectMessage = (ObjectMessage) message;
         String jsonStr = (String) objectMessage.getobject();
         JSONObject jsonObject = new JSONObject(jsonStr);
         System.out.println("Name: " + jsonObject.getString("name"));
         System.out.println("Age: " + jsonObject.getInt("age"));
         System.out.println("City: " + jsonObject.getString("city"));
      }
      session.close();
      connection.close();
   }
}

在这个示例中,我们从与发送端相同的队列中接收JSON消息,并将其反序列化为JSONObject,然后从JSONObject中提取数据。

使用ActiveMQ传递JSON数据非常方便。我们只需要将JSON对象序列化为字符串,然后将其封装在ActiveMQ Object消息中。在接收端,我们可以使用相同的数据类型,并将其反序列化为JSONObject。然后我们只需要提取所需的信息即可。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐