2016-05-13 18 views
0

Wie beheben Sie das?JsonIgnore funktioniert nicht mit Spring

Ich habe versucht, @JsonIgnore zu Getter hinzufügen, aber das Ergebnis war gleich.

POJO:

public class Category { 
    // Omitted details 

    @JsonIgnore 
    private List<Category> children; 
} 

Von build.gradle:

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

Frühling Version:

4.2.6.RELEASE 

Kontext:

<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

Sie Gson erwarten mit einem Jackson Anmerkung zu arbeiten. –

Antwort

1

First off, fügen jackson-databind Abhängigkeit:

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

Sie können die jackson-annotations entfernen, da es transitively gelöst werden. Dann wird Spring MVC mit approeraite Jackson jar auf dem Klassenpfad automatisch die erforderlichen HttpMessageConverter s für Sie konfigurieren. Sie müssen also nicht manuell registriert werden. Daher können Sie sicher der folgenden loszuwerden:

<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> 

Frühling in der Regel verwendet gut definiert und lange Namen für ihre Abstraktionen, so dass man leicht herausfinden können, was der Zweck eines jeden ist. Offensichtlich ist GsonHttpMessageConverter ein HttpMessageConverter für Gson, nicht Jackson. Checkout Spring documentation für ausführlichere Diskussion.

+1

Danke, Mann! Sehr hilfreich! – Arthur

1

haben Sie einen Blick auf Ihren Code:

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

Sie benötigen die Jackson Version des Konverters

Verwandte Themen