我正在以JSON格式向ActiveMQ服务器发送消息。我正在尝试使用JMS Transformation将JSON编码对象转换为真正的Java对象,希望能够在内部数据上使用选择器。
Here是有关Stomp和Message Transformation的文档的链接。 Here是有关修补程序讨论的链接,其中某人显示了合法JSON对象的示例
我发送的JSON对象的格式(非常简洁)与此类似:
{ "msg": { "flag1" : "value1", "flag2" : "value2" } }
消息到达消息队列,但transform-error属性设置为'msg:msg'。
答案 0 :(得分:4)
转换接受的唯一格式jms-map-json或jms-object-json是一种简单的Map格式,在JSON中是:
{"map" : {"entry" : [ { "string1": [ "key1", "value1" ] }, { "string2": [ "key2", "value2" ] } ] } }
这与论坛中显示的格式相同。此格式表示java中的名称/值对映射对象。
选择器仅适用于“属性”和“标题”。
答案 1 :(得分:3)
只要XStream可以处理它,就可以对jms-object-json转换使用任何JSON表示法。您可以查看一些示例的测试用例。在那里,我们使用SamplePojo类:
已正确注释,因此可以使用以下JSON
表示{ “POJO”:{ “名”:“德扬” “城市”:“贝尔格莱德” }}
您可以尝试对您的班级使用相同的方法。
希望这有帮助, 德扬
答案 2 :(得分:0)
应该提到的是ActiveMQ版本必须至少为5.8,因为使用5.6版本时,在转换不起作用时会遇到问题。