2017-03-24 4 views
0

Ich verwende Springframeworks in meinem Projekt und für JSON verwenden wir jackson. Eine Liste sollte auf eine bestimmte Art serialisiert werden, d. H. Sie sollte eine spezifische JSON-Ausgabe haben. Ich folgte den Antworten dieses thread, aber das schlägt fehl.Individuelle Serializer in Springframework

@JsonSerialize(using = UserDataSerializer.class) 
List<TestObj> lstTest; 

und

public class UserDataSerializer extends StdSerializer<TestObj> { 

    protected UserDataSerializer(Class<TestObj> t) { 
     super(t); 
    } 

    @Override 
    public void serialize(TestObj value, JsonGenerator gen, SerializerProvider provider) throws IOException { 
     gen.writeStartObject(); 
     gen.writeObjectField(value.getName(), value.getValue()); 
     gen.writeEndObject(); 
    } 
} 

aber leider dieser Ansatz nicht mit einer Ausnahme:

Servlet.service() for servlet [test3backend] in context with path [/test] threw exception [Request processing failed; nested exception is org.springframework.beans.f 
actory.UnsatisfiedDependencyException: Error creating bean with name 'me.test.entities.UserDataSerializer': Unsatisfied dependency expressed through constructor paramete 
r 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'java.lang.Class<me.test.entities.TestObj>' av 
ailable: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}] with root cause 
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'java.lang.Class<at.me.test.entities.TestObj>' available: expected at leas 
t 1 bean which qualifies as autowire candidate. Dependency annotations: {} 

Irgendwelche Hinweise, wie man richtig in meinem Projekt konfigurieren?

+0

haben Sie Ihre Klasse 'UserDataSerializer' mit '@ Bean' Annotation versehen –

Antwort

1

Das Hauptproblem bei diesem Problem war, dass ich keinen Standard null Konstruktor, das heißt das Hinzufügen

public UserDataSerializer() { 
    this(null); 
} 

lösten dieses Problem enthalten war.

Verwandte Themen