我将一个json对象从java对象传递给客户端,时间和值作为gson的属性
this.template.convertAndSend("/topic/123", gson.toJson(object, type));
在客户端我有以下代码,其中json对象数据存储在有效负载的主体中,但是我无法使用obj.time或obj.value访问属性,它告诉我在它之后是未定义的解析后,我尝试显示整个'obj'本身,但格式似乎很好:
var subscription_callback1 = function(payload) {
var obj = JSON.parse(payload.body);
alert(obj);
};
使用alert(obj)输出
{"time":"3:00:34","value":"7989797"}
答案 0 :(得分:1)
没关系解决了。因为我正在使用Spring 4框架传输STOMP协议消息。我选择使用Jackson2消息转换器而不是直接使用gson,它似乎工作
@Configuration
@EnableWebSocketMessageBroker
public class MessageBrokerConfigurer extends AbstractWebSocketMessageBrokerConfigurer {
@Override
public boolean configureMessageConverters(List<MessageConverter> messageConverters) {
messageConverters.add(new MappingJackson2MessageConverter());
return true;
}
然后我直接将我的java对象放入send函数,而不是使用gson将其转换为上面的
this.template.convertAndSend("/topic/123", event)