我是新手来休息webservice。有人可以帮我确定正确的方法。
我希望我的web服务被消耗Json对象(List id)并生成Json对象。
我想将给定的json数据传递给我的服务。
{
id : "1"
id : "2"
id : "3"
id : "4"
}
和我的服务看起来像 -
@RequestMapping(value = "/read/ids", method = RequestMethod.POST)
@ResponseBody
public List<ids> getValues(Collection<String> ids){
// some calculation....
}
此代码对我不起作用。 我正在使用spring框架来创建我的服务。
适合我的alernate方式是 -
传递简单数据
1,2
然后服务以消耗它。
@RequestMapping(value = "/read/ids", method = RequestMethod.POST)
@ResponseBody
public List<String> getValues(@Valid @RequestBody String ids){
List<String> testids = new ArrayList<>();
if(ids.contains(",")){
String[] idArray = ids.split(",");
for(String id : idArray){
testids.add(service.findByid(id));
}
}else{
testids.add(service.findByid(ids));
}
return testids;
}
BUt我不认为正确的方法
注意:我不想创建包含列表的不必要对象
答案 0 :(得分:1)
你这样传递JSON。 ArrayList不接受键和值对。然后添加密钥
JSON:
[
"1",
"2",
"3",
"4"
]
@RequestMapping(method = RequestMethod.POST, value = "/read/ids/",headers="Accept=application/json")
public ArrayList<String> test(@RequestBody ArrayList<String> ids) throws Exception {
return ids;
}