处理请求中的json格式数据
- 处理json格式的数据需要使用注解@RequestBody。
- @RequestBody注解可以将json格式数据转化成java对象,但是要求content-type不是默认的application/x-www-form-urlcoded编码内容,这个content-type就是指的是请求内容,会把请求中的参数变成key=value的格式,如果是get请求会把参数放到?问号后面key=value形式用&来拼接,post是将参数放到请求体中RequestBody中,
- 需要注意的是@RequestBody注解只能处理application/json类型的数据,
- 处理响应中的数据
将响应结果转化成json格式数据时,需要使用@ResponseBody注解。
作用就是将方法返回的对象通过转化器转化成json格式数据,同时也写入到response对象中的body中,用来返回json格式数据,在使用这个注解后响应结果不会走视图解析器了,而是直接走输出流中,效果就是通过reponse对象输出指定格式数据。
如果处理请求的方法返回的是一个字符串时,@ResponseBody注解不会进行json转化,响应类型是content-type text/plain;charset=ISO-8859-1
看上图可以知道方法返回的数据类型如果是String,则@ResponseBody并没有返回成json格式类型啊
如果处理请求方法返回的是不是String类型,@ResponseBody注解会自动住转化成json格式,响应类型Context-Type为application/json