我的Controller类中有以下行:
this.template.convertAndSend("/topic/greetings", message);
message是一个arrayList。在jsp文件中,我打开一个套接字并订阅" topic / greetings"。我试图访问Controller发送的消息正文中的字段: 所以我这样做:
var stompClient = null;
var socket = new SockJS('/gs-guide-websocket');
stompClient = Stomp.over(socket);
stompClient.connect({}, function(frame) {
stompClient.subscribe('/topic/greetings', function(message) {
console.log(message.body);
}
}
在打印机的控制台上打印下面的行:
[
{
"_id":{
"timestamp":1487493075,
"machineIdentifier":1371548,
"processIdentifier":-28904,
"counter":16629528,
"date":1487493075000,
"time":1487493075000,
"timeSecond":1487493075
},
"name":"Alex",
"age":25
}
]
我想访问该对象的字段名称。
message.body.name
打印未定义。
我也尝试过:
var obj = JSON.parse(message.body);
console.log(obj.name);
或
console.log(obj["name"]);
但它们都是未定义的。
更新:
我见过link,但我的错误在于:
var obj = message.body;
console.log(obj[0]);
而不是这一个:
var obj = JSON.parse(message.body);
console.log(obj[0].name);
答案 0 :(得分:1)
请注意dynamic obj; //it is just a declaring
if (true)
obj = new Derived1();
else
obj = new Derived2();
Console.WriteLine(obj.ParticularMethod());
//"Particular method of derived 1"
Console.ReadKey();
是一个数组,所以请使用:
message.body