2017-06-20 2 views
0

Ich verwende Spring als Back-End und Ajax zu Get und Post-Daten. In meinem Controller gebe ich HashMap zurück. Alles funktioniert gut. Aber wenn ich Daten in Javascript-Datei erhalte, ändert sich die Reihenfolge der Daten. Was mache ich falsch?Rückgabewert Reihenfolge ändert sich, wenn senden HashMap in Ajax Post

Zum Beispiel, wenn ich

senden
map.put("name","aaa"); 
map.put("name","bbb"); 
map.put("name","ccc"); 

in js Datei, die ich andere Reihenfolge wie ccc erhalten, aaa, bbb. Geänderte Reihenfolge ist immer gleich. Es ist nicht zufällig.

Hier sind einige Codes, die ich verwende.

-Controller

@RequestMapping(value = "/history", method = RequestMethod.GET) 
public @ResponseBody Map<String, myModel> getHistory() { 

    Map<String, ChatModel> userInfo = md.getUserInfo(userId); 

    return userInfo; 
} 

Get-Methode

$.ajax({ 
     contentType: "application/json;charset=utf-8", 
     type : "GET", 
     url : "../Spring4MVCHelloWord/history/", 
     dataType : 'json', 
     success: function(data){ 

      displayHistory(data); 
     }, 

     error: function(xhr, status, error) { 
      console.log(xhr); 
     } 

    }); 

Antwort

1

Versuchen Sie, eine LinkedHashMap stattdessen verwenden. A wird in der Reihenfolge durchlaufen, in der die Einträge in die Karte eingefügt wurden. Wenn Leistung etwas ist, das Sie wünschen, und Sie die Bestellung aufgeben können, dann gehen Sie auf eine HashMap.

+0

Danke, @Joey Ezekiel löste mein Problem. – mamur

+0

Ihre Begrüßung :) –