2016-04-15 12 views
1

Ich versuche, meine JSON im Browser anzuzeigen, ich erhalte Daten in JSON, aber nur den letzten Datensatz meiner Tabelle. Folgende Gläser sind in meinem Build-Pfad,Fasterxml Jackson Mapping - Daten sind nicht bindend

  • Jackson-databind
  • Jackson-core
  • Jackson-Annotationen

Hier ist meine Controller-Methode

@RequestMapping("/viewDashboard") 
    @ResponseBody 
    public ModelMap test(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, @RequestParam String name) { 

     ModelMap modelMap = new ModelMap(); 
     List<Instances> instances = viewDashboardServiceImpl.viewDashboard(); 
     log.info(instances.size()); 
     return modelMap.addAllAttributes(instances); 

    } 
} 

tatsächlich Datenbanktabelle Ich bin fünf Datensätze, aber in Json bekomme ich nur eine Datensatzdaten.

In der obigen Methode vor dem Hinzufügen von Instanzen Liste in ModelMap Objekt Ich überprüfe die Größe der Liste und es gibt als fünf, aber in meinem JSON zeigt es nur Daten eines Datensatzes.

Hier ist meine Konsolenausgabe

17: 08: 08.638 INFO [com.mac.controller.DashboardController] (http - 127.0.0.1-808 0-1) Größe der Instanzen-Liste: 5

Hier ist meine JSON

{"instances":{"id":5,"instanceName":".net","applications":{"id":3,"name":">net","ownerName":"Mou","version":"3kmnc"},"environments":{"id":2,"name":"IST","ownerName":"Mou","version":"1.23.asd"},"version":"2.3as"}} 

Vielen Dank im Voraus.

Antwort

1

Es sieht aus wie das echte Problem hier ist der modelMap.addAllAttributes(instances) Aufruf. Spring generiert die Schlüssel für Ihre Listenelemente basierend auf dem Klassennamen jedes Elements.

Zum Beispiel:

List<String> list = Arrays.asList("x", "y", "z"); 

ModelMap m = new ModelMap(); 
m.addAllAttributes(list); 

Hier die ModelMap enthält einen Eintrag mit einem Attributnamen "string" und einem Wert "z". "x" und "y" sind nicht in der Map enthalten, da jeder generierte Attributname "string" ist und der letzte gewinnt.

Um dies zu beheben, weisen Sie einfach einen Attributnamen zu Ihrer instances Sammlung, wenn sie an die modelMap Zugabe:

modelMap.addAttribute("myInstances", instances); 
Verwandte Themen