2017-08-05 25 views
0

我添加到我的類路徑傑克遜數據綁定..打印JSON陣列上的WebSocket控制器

從踐踏入射這是我的Java代碼(服務器側)

 @MessageMapping("/hello") 
     @SendTo("/topic/whoIsOnline") 
     public List<User> greeting(String name) throws Exception { 
      List<User> list = new ArrayList<User>(); 
      User user = new User(); 
      user.setEmail("[email protected]"); 
      list.add(user); 
      User user1 = new User(); 
      user1.setEmail("[email protected]"); 
      list.add(user1); 
      System.out.println(list); 
      return list; 
     } 

這是JS代碼..

var stompClient = null; 
    $(document).ready(function() { 

     var socket = new SockJS('onlineUsers'); 
     stompClient = Stomp.over(socket); 
     stompClient.connect({}, function(frame) { 

      console.log('Connected: ' + frame); 
      stompClient.subscribe('/topic/whoIsOnline', function(result) { 
       var results = result.body; 
       for(var i in results){ 
         console.log(results[i].email); 
        } 

      }); 
     }); 
    }); 

    function sendName() { 
     var txtUser = $('#txtUser').val(); 
     stompClient.send("/app/hello", {}, JSON.stringify(txtUser)); 
    } 

當我寫document.writeln(結果)它是這樣打印...

[{"email":"[email protected]"},{"email":"[email protected]"}] 

但是,我想打印它像這樣..

[email protected] 
[email protected] 

for循環不會工作。

for(var i in results) 
    { 
     console.log(results[i].email); 
    } 

回答

0

嘗試下面的代碼

var results = result.body; 
var data = JSON.parse(results); 
for(var i in data){ 
    console.log(data[i].email); 
}