课程咨询 :186 8716 1620      qq:2066486918

昆明Java培训 > 达内新闻 > SpringMVC是如何处理JSON数据的
  • SpringMVC是如何处理JSON数据的

    发布:昆明Java培训      来源:达内新闻      时间:2016-08-31

  • 昆明Java培训机构的老师明白,想要搞明白第一个问题,前提是先要搞明白第一个问题:SpringMVC是如何处理JSON数据的。

    1.使用HttpMessageConverter<T>来处理 JSON数据的。

    Spring的HttpMessageConverter<T>负责将请求信息转换为一个对象,将对象输出为响应信息。

    2.API

    (1)boolean canRead(Class<?> clazz, MediaType mediaType);

    转换器是否可将请求信息转换为clazz类型的对象,同时支持指定的MIME类型,如:text/html,application/json等。

    (2)boolean canWrite(Class<?> clazz, MediaType mediaType);

    转换器是否可以将clazz类型的对象写到响应中,响应支持的类型在mediaType中定义。

    (3)List<MediaType> getSupportedMediaTypes();

    改转换器支持的MediaType类型。

    (4)T read(Class<? extends T> clazz, HttpInputMessage inputMessage);

    将请求信息流转换为clazz类型的对象。

    (5)void write(T t, MediaType contentType, HttpOutputMessage outputMessage)。

    将T类型的对象写到响应输出流中,同时指定MediaType。

    3.实现类

    3.从上图可以看出,Spring默认支持使用Jackson来处理JSON问题。添加Jackson Jar包后,来看RequestMappingHadlerAdapter装配的HttpMessageConverter:

    导入的Jackson Jar包:

    4.具体的处理方法:

    (1)使用@RequestBody和HttpEntity<T>对请求进行处理。

    (2)使用@ResponseBody和ResponseEntity<T>对响应进行处理。

    (3)@RequestBody对处理方法的入参进行标注。

    (4)@ResponseBody对处理方法的签名进行标注。

    (5)HttpEntity<T>和ResponseEntity<T>作为处理方法的入参使用。

    具体的使用方法会在下面例子中进行说明。

    5.@RequestBody和@ResponseBody是可以同时使用的。

    想要搞明白第一个问题,前提是先要搞明白第一个问题:SpringMVC是如何处理JSON数据的。

    1.使用HttpMessageConverter<T>来处理 JSON数据的。

    Spring的HttpMessageConverter<T>负责将请求信息转换为一个对象,将对象输出为响应信息。

    2.API

    (1)boolean canRead(Class<?> clazz, MediaType mediaType);

    转换器是否可将请求信息转换为clazz类型的对象,同时支持指定的MIME类型,如:text/html,application/json等。

    (2)boolean canWrite(Class<?> clazz, MediaType mediaType);

    转换器是否可以将clazz类型的对象写到响应中,响应支持的类型在mediaType中定义。

    (3)List<MediaType> getSupportedMediaTypes();

    改转换器支持的MediaType类型。

    (4)T read(Class<? extends T> clazz, HttpInputMessage inputMessage);

    将请求信息流转换为clazz类型的对象。

    (5)void write(T t, MediaType contentType, HttpOutputMessage outputMessage)。

    将T类型的对象写到响应输出流中,同时指定MediaType。

    3.实现类

    3.从上图可以看出,Spring默认支持使用Jackson来处理JSON问题。添加Jackson Jar包后,来看RequestMappingHadlerAdapter装配的HttpMessageConverter:

    导入的Jackson Jar包:

    4.具体的处理方法:

    (1)使用@RequestBody和HttpEntity<T>对请求进行处理。

    (2)使用@ResponseBody和ResponseEntity<T>对响应进行处理。

    (3)@RequestBody对处理方法的入参进行标注。

    (4)@ResponseBody对处理方法的签名进行标注。

    (5)HttpEntity<T>和ResponseEntity<T>作为处理方法的入参使用。

    具体的使用方法会在下面例子中进行说明。

    5.@RequestBody和@ResponseBody是可以同时使用的。

    想要搞明白第一个问题,前提是先要搞明白第一个问题:SpringMVC是如何处理JSON数据的。

    1.使用HttpMessageConverter<T>来处理 JSON数据的。

    Spring的HttpMessageConverter<T>负责将请求信息转换为一个对象,将对象输出为响应信息。

    2.API

    (1)boolean canRead(Class<?> clazz, MediaType mediaType);

    转换器是否可将请求信息转换为clazz类型的对象,同时支持指定的MIME类型,如:text/html,application/json等。

    (2)boolean canWrite(Class<?> clazz, MediaType mediaType);

    转换器是否可以将clazz类型的对象写到响应中,响应支持的类型在mediaType中定义。

    (3)List<MediaType> getSupportedMediaTypes();

    改转换器支持的MediaType类型。

    (4)T read(Class<? extends T> clazz, HttpInputMessage inputMessage);

    将请求信息流转换为clazz类型的对象。

    (5)void write(T t, MediaType contentType, HttpOutputMessage outputMessage)。

    将T类型的对象写到响应输出流中,同时指定MediaType。

    3.实现类

    3.从上图可以看出,Spring默认支持使用Jackson来处理JSON问题。添加Jackson Jar包后,来看RequestMappingHadlerAdapter装配的HttpMessageConverter:

    导入的Jackson Jar包:

    4.具体的处理方法:

    (1)使用@RequestBody和HttpEntity<T>对请求进行处理。

    (2)使用@ResponseBody和ResponseEntity<T>对响应进行处理。

    (3)@RequestBody对处理方法的入参进行标注。

    (4)@ResponseBody对处理方法的签名进行标注。

    (5)HttpEntity<T>和ResponseEntity<T>作为处理方法的入参使用。

    具体的使用方法会在下面例子中进行说明。

    5.@RequestBody和@ResponseBody是可以同时使用的。

    学Java开发就到昆明达内Java培训班!了解详情请登陆昆明达内Java培训官网(km.Java.tedu.cn)!

    推荐文章

上一篇:SpringMVC——对Ajax的处理

下一篇:请求的JSON字符串和实体的映射

最新开班日期  |  更多

Java--零基础全日制班

Java--零基础全日制班

开班日期:11/30

Java--零基础业余班

Java--零基础业余班

开班日期:11/30

Java--周末提升班

Java--周末提升班

开班日期:11/30

Java--零基础周末班

Java--零基础周末班

开班日期:11/30

  • 网址:http://km .java.tedu.cn      地址:昆明市官渡区春城路62号证券大厦附楼6楼
  • 课程培训电话:186 8716 1620      qq:2066486918    全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56