我正在将 JSON 格式的消息发送到 ActiveMQ 服务器。我正在尝试使用 JMS 转换将 JSON 编码对象转换为真正的 Java 对象,希望能够在内部数据上使用选择器。
这是 Stomp 和消息转换文档的链接。 这是一个关于补丁讨论的链接,其中有人展示了一个合法 JSON 对象的示例
我发送的 JSON 对象的格式(漂亮的印刷品)与此类似:
{ “味精”:{ “标志1”:“值1”, “标志 2”:“值 2” } }
消息到达消息队列,但转换错误属性设置为“msg:msg”。
转换 jms-map-json 或 jms-object-json 接受的唯一格式是简单的 Map 格式,在 JSON 中是:
{“地图” : {“入口” : [ { "string1": [ "key1", "value1" ] }, { "string2": [ "key2", "value2" ] } ] } }
这与讨论论坛中显示的格式相同。此格式表示 java 中的名称/值对映射对象。
选择器仅可用于属性和标题。
只要 XStream 可以处理它,您就可以对 jms-object-json 转换使用任何 JSON 表示法。您可以查看一些示例的测试用例。在那里,我们使用 SamplePojo 类:
已正确注释,因此可以用以下 JSON 表示
{“pojo”:{“名称”:“德扬”,“城市”:“贝尔格莱德”}}
您可以尝试对您的课程使用相同的方法。
希望这会有所帮助,德扬
值得一提的是,ActiveMQ 版本必须至少为 5.8,因为使用 5.6 版本时,我在转换不起作用时遇到了问题。