美文网首页
spring mvc jackson返回Jason数据方法并将

spring mvc jackson返回Jason数据方法并将

作者: 北京的天空 | 来源:发表于2018-11-24 20:36 被阅读0次

1.修改pom.xml 加入Jackson第三方库

         <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
  <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.3</version>
  </dependency>
        <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
  <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.9.3</version>
  </dependency>
        <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
  <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.9.3</version>
 </dependency>

1.修改springmvc-servlet.xml
添加如下全局注解驱动,全局过滤

方法一:

 <mvc:annotation-driven>
    <mvc:message-converters>
        <ref bean="stringHttpMessageConverter"/>
        <ref bean="mappingJackson2HttpMessageConverter"/>
    </mvc:message-converters>
</mvc:annotation-driven>
<bean id="stringHttpMessageConverter"
      class="org.springframework.http.converter.StringHttpMessageConverter"/>
<!--解决IE浏览器json文件下载和json数据中午乱码的问题-->
<bean id="mappingJackson2HttpMessageConverter"
      class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
    <property name="supportedMediaTypes">
        <list>
            <value>text/html;charset=UTF-8</value>
            <value>application/json;charset=UTF-8</value>
        </list>
    </property>
<!--  打开后过滤nsnull即不显示此字段        <property name="objectMapper">
            <bean class="com.fasterxml.jackson.databind.ObjectMapper">
                <property name="serializationInclusion">
                    <value type="com.fasterxml.jackson.annotation.JsonInclude.Include">NON_NULL</value>
                </property>
            </bean>
     </property> -->
</bean>

方法二:

<!--start:使用Jackson 2.x的配置,需要导入的jar包:jackson-core-xxx.jar、jackson-annotations-xxx.jar、jackson-databind-xxx.jar-->

<!--通过处理器映射DefaultAnnotationHandlerMapping来开启支持@Controller注解-->

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />

<!-- 通过处理器适配器AnnotationMethodHandlerAdapter来开启支持@RequestMapping注解-->

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
    <list>
        <!--设置返回字符串编码--> 
       <bean class="org.springframework.http.converter.StringHttpMessageConverter">
            <property name = "supportedMediaTypes">
                <list>
                    <value>text/html;charset=UTF-8</value>
                    <value>application/json;charset=UTF-8</value>
                </list>
            </property>
        </bean>
        <!-- json转换器 -->
        <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
            <property name="supportedMediaTypes">
                <list>
                    <value>text/html;charset=UTF-8</value>
                    <value>application/json;charset=UTF-8</value>
                </list>
            </property>
        </bean>
    </list>
</property>

</bean>
<!--end:使用Jackson 2.x的配置,需要导入的jar包:jackson-core-xxx.jar、jackson-annotations-xxx.jar、jackson-databind-xxx.jar-->

方法三
也是全局注解将map和array修改为json数据,注意xml中确保有一个<mvc:annotation-driven>或者以下注册属性提前注解,否则会不起作用,个人理解相同注解驱动过滤,先注册的起作用

  <mvc:annotation-driven>
    <mvc:message-converters>
        <ref bean="stringHttpMessageConverter"/>
        <ref bean="mappingJackson2HttpMessageConverter"/>
    </mvc:message-converters>
</mvc:annotation-driven>
<bean id="stringHttpMessageConverter"
      class="org.springframework.http.converter.StringHttpMessageConverter"/>
      <!-- 注册RequestMappingHandlerMapping 和RequestMappingHandlerAdapter 两个bean。--> 
<bean id="mappingJackson2HttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> 
        <property name="objectMapper"> 
            <bean class="com.java.service.impl.JsonObjectMapper"></bean> 
        </property> 
 </bean> 

相关文章

网友评论

      本文标题:spring mvc jackson返回Jason数据方法并将

      本文链接:https://www.haomeiwen.com/subject/pbbyqqtx.html