2014-02-13 116 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))); 
} 
相关问题