6

我正在将 JSON 格式的消息发送到 ActiveMQ 服务器。我正在尝试使用 JMS 转换将 JSON 编码对象转换为真正的 Java 对象,希望能够在内部数据上使用选择器。

是 Stomp 和消息转换文档的链接。 是一个关于补丁讨论的链接,其中有人展示了一个合法 JSON 对象的示例

我发送的 JSON 对象的格式(漂亮的印刷品)与此类似:

{
   “味精”:{
      “标志1”:“值1”,
      “标志 2”:“值 2”
   }
}

消息到达消息队列,但转换错误属性设置为“msg:msg”。

4

3 回答 3

5

转换 jms-map-json 或 jms-object-json 接受的唯一格式是简单的 Map 格式,在 JSON 中是:

{“地图” :
  {“入口” :
    [
      { "string1": [ "key1", "value1" ] },
      { "string2": [ "key2", "value2" ] }
    ]
  }
}

这与讨论论坛中显示的格式相同。此格式表示 java 中的名称/值对映射对象。

选择器仅可用于属性和标题。

于 2008-12-31T11:52:06.257 回答
3

只要 XStream 可以处理它,您就可以对 jms-object-json 转换使用任何 JSON 表示法。您可以查看一些示例的测试用例。在那里,我们使用 SamplePojo 类:

https://svn.apache.org/repos/asf/activemq/trunk/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/SamplePojo.java

已正确注释,因此可以用以下 JSON 表示

{“pojo”:{“名称”:“德扬”,“城市”:“贝尔格莱德”}}

您可以尝试对您的课程使用相同的方法。

希望这会有所帮助,德扬

于 2009-01-05T12:16:13.153 回答
0

值得一提的是,ActiveMQ 版本必须至少为 5.8,因为使用 5.6 版本时,我在转换不起作用时遇到了问题。

于 2020-02-14T13:32:55.997 回答