public class RestfulControllerImpl implements RestfulController {
@Override
@RequestMapping(value = "maptest", method = RequestMethod.GET)
@ResponseBody
public Object mapReturn() {
HashMap<String, String> map = new HashMap<String, String>();
map.put("name", "test1");
map.put("sex", "male");
map.put("address", "1324");
map.put("old", "123");
return map;
}
}
Run Code Online (Sandbox Code Playgroud)
我想map<string, string>为请求返回一个,它发生了
HTTP-406 不可接受
如何实现方法以返回带有地图的响应正文,并且它像 json 对象一样显示?
如果您的控制器仅返回 json (REST API),则使用注释 Class@RestController而不是@Controller. 那么您不需要@ResponseBody为每个 Endpoint 添加注释。由于我们解决了缺少的问题,@ResponseBody下面的代码将执行您想要的操作。
@GetMapping("/maptest")
public ResponseEntity<?> mapReturn() {
HashMap<String, String> map = new HashMap<String, String>();
map.put("name", "test1");
map.put("sex", "male");
map.put("address", "1324");
map.put("old", "123");
return ResponseEntity.ok(map);
}
Run Code Online (Sandbox Code Playgroud)
这ResponseEntity是 Http 响应的包装器。因为我在这里声明,所以ResponseEntity<?>我可以将任何对象作为 json 返回。(当您将错误响应作为另一个对象返回时,这是很好的)但是,如果您确定它只会返回 Map 对象,您可以将其写为ResponseEntity<Map>(如果您有单独的错误处理程序)希望这一点很清楚。
Nik*_*sev -1
返回地图而不是对象。
@RequestMapping(value = "maptest", method = RequestMethod.GET)
@ResponseBody
public Map<String,String> mapReturn() {
HashMap<String, String> map = new HashMap<String, String>();
map.put("name", "test1");
map.put("sex", "male");
map.put("address", "1324");
map.put("old", "123");
return map;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18717 次 |
| 最近记录: |