访问消息正文中的Json字段

时间:2017-02-19 10:23:25

标签: javascript json

我的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);

1 个答案:

答案 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