2014-02-13 57 views

回答

7

可以使用@ResponseBody註釋,就回到任何你想要的,提供這些對象可以jsonized。

例如,你可以有這樣的一個bean:

@Data 
public class SomePojo { 
    private String someProp; 
    private List<String> someListOfProps; 
} 

,然後在你的控制器,你可以有:

@ResponseBody 
@RequestMapping("/someRequestMapping") 
public List<SomePojo> getSomePojos(){ 
    return Arrays.<String>asList(new SomePojo("someProp", Arrays.<String>asList("prop1", "prop2")); 
} 

和Spring在默認情況下將使用其傑克遜映射器做,所以你會得到如下回應:

[{"someProp":"someProp", "someListOfProps": ["prop1", "prop2"]}] 

同樣的方式,你可以綁定到一些對象,但t他的時間,使用@RequestBody註釋,這裏傑克遜將用於預先轉換json給你。

你可以做的是

@RequestMapping("/someOtherRequestMapping") 
public void doStuff(@RequestBody List<SomePojo> somePojos) { 
    //do stuff with the pojos 
} 
+0

很酷! 它的工作=) 我非常新的春天和整個休息的想法。 你知道這個有什麼好的教程嗎? 我需要得到一個像這樣的json: [「ID」:0,「name」:「Sancho Panza」}, }, {「id」:2,「name」:「Heman matt」} ] – fuLLMetaLMan

+1

然後製作一份這些傢伙的名單並返回它:) –

+0

呵呵,是的。我有點不確定,因爲當我嘗試它沒有工作。但現在它確實如此。小的語法錯誤。謝謝你!像魅力一樣工作:D – fuLLMetaLMan

1

嘗試從方法返回一個列表:

@RequestMapping("/greetings") 
public @ResponseBody List<Greeting> greetings(
     @RequestParam(value="name", required=false, defaultValue="World") String name) { 
    return Arrays.asList(new Greeting(counter.incrementAndGet(),String.format(template, name))); 
} 
相關問題