2016-05-13 71 views
0

如何解决此问题?JsonIgnore不适用于弹簧

我试着给0123加上@JsonIgnore,但结果是一样的。

POJO:

public class Category { 
    // Omitted details 

    @JsonIgnore 
    private List<Category> children; 
} 

build.gradle

'com.fasterxml.jackson.core:jackson-annotations:2.7.3' 

Spring版本:

4.2.6.RELEASE 

语境:

<bean id="jacksonMessageConverter" 
     class="org.springframework.http.converter.json.GsonHttpMessageConverter"/> 
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> 
    <property name="messageConverters"> 
     <list> 
      <ref bean="jacksonMessageConverter"/> 
     </list> 
    </property> 
</bean> 
+2

您期望GSON与杰克逊注释工作。 –

回答

1

首先,加jackson-databind依赖:

'com.fasterxml.jackson.core:jackson-databind:2.7.3' 

可以删除jackson-annotations,因为它会被传递地解决。然后,通过类路径上的Jackson jar,Spring MVC将自动为您配置所需的HttpMessageConverter。所以,不需要手动注册它们。因此,你可以放心地摆脱了以下内容:

<bean id="jacksonMessageConverter" 
     class="org.springframework.http.converter.json.GsonHttpMessageConverter"/> 
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> 
    <property name="messageConverters"> 
     <list> 
      <ref bean="jacksonMessageConverter"/> 
     </list> 
    </property> 
</bean> 

春季通常采用明确定义和长名称为它的抽象,所以你可以很容易地发现什么是每个人的目的。显然GsonHttpMessageConverter对于GsonHttpMessageConverter,而不是Jackson。结账Spring documentation进行更详细的讨论。

+1

谢谢你,男人!很有帮助! – Arthur

1

请看看你的代码:

<bean id="jacksonMessageConverter" 
     class="org.springframework.http.converter.json.GsonHttpMessageConverter"/> 

您需要Jackson版本转换器