2011-01-21 7 views
2

Je posterai ci-dessous contiennent JSONcontrôleur ressort JSON recevoir JSON Liste

{"testListObject":[{"testText":"bbb","testDate":"02.01.2011 00:00:00.000"},{"testText":"aaa","testDate":"01.01.2011 00:00:00.000"}]} 

dans mon contrôleur de printemps, j'ai

@RequestMapping(value = "/post/tester/", method = RequestMethod.POST) 
public @ResponseBody String postItinerary(@ModelAttribute("testListObject") TestList testList) throws IOException { 


    System.out.println("1="+testList); //ok 
    System.out.println("2="+testList.childListObject); //print null 
} 

Toute idée pourquoi j'obtenir null pour Liste childListObject?

mon regard pojo comme ci-dessous

public class TestList(){ 

    public List<ChildObject> childListObject; 

//get and set 
    } 


    public class ChildObject(){ 

    public String testText; 
    public String testDate; 
//get and set  
} 

Répondre

5

@ModelAttribute appelle le classeur de données Web. Il recherche des paramètres de méthode de post ordinaires (par exemple, la clé param - "childListObject [0] .testText" param value "bbb") pour lier votre objet.
Pour désérialiser JSON dans un objet, vous devez utiliser @RequestBody pour appeler le sérialiseur.

En outre, votre JSON ne semble pas correspondre à l'obect. Vous JSON est juste un tableau sans l'objet wrapper, donc si vous avez soumis cela comme votre demande, le paramètre de la méthode serait juste une liste.

0

Avez-vous configuré org.springframework.http.converter.json.MappingJacksonHttpMessageConverter dans votre xml de configuration?