2017-08-05 4 views
0

J'ai ajouté à mon classpath jackson DataBind ..Imprimer tableau JSON entrant de Stomp sur le contrôleur de Websocket

Ceci est mon code java (Serverside)

 @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; 
     } 

C'est le code 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)); 
    } 

Quand je l'écris est l'impression comme document.write (résultats) ... ce

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

Mais, je veux l'imprimer comme ça ..

[email protected] 
[email protected] 

boucle fonctionne pas ..

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

Répondre

0

Essayez le code suivant

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