Ich habe eine Klasse wie:Jacksons ObjectMapper innen Individuelle Verwendung Klasse
@Data
public class Lmao {
String lol;
String lel;
public String getJsonString() throws Exception {
ObjectMapper objectMapper = new ObjectMapper();
return objectMapper.writeValueAsString(this);
}
}
Allerdings, wenn ich die getJsonString()
Methode aufrufen, erhalte ich folgende Fehlermeldung:
java.lang.StackOverflowError
at com.fasterxml.jackson.databind.introspect.AnnotatedClass._findFields(AnnotatedClass.java:795)
at com.fasterxml.jackson.databind.introspect.AnnotatedClass._findFields(AnnotatedClass.java:802)
at com.fasterxml.jackson.databind.introspect.AnnotatedClass.resolveFields(AnnotatedClass.java:571)
at com.fasterxml.jackson.databind.introspect.AnnotatedClass.fields(AnnotatedClass.java:353)
at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector._addFields(POJOPropertiesCollector.java:350)
at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.collectAll(POJOPropertiesCollector.java:283)
at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.getJsonValueMethod(POJOPropertiesCollector.java:169)
at com.fasterxml.jackson.databind.introspect.BasicBeanDescription.findJsonValueMethod(BasicBeanDescription.java:223)
at com.fasterxml.jackson.databind.ser.BasicSerializerFactory.findSerializerByAnnotations(BasicSerializerFactory.java:349)
at com.fasterxml.jackson.databind.ser.BeanSerializerFactory._createSerializer2(BeanSerializerFactory.java:208)
at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:157)
at com.fasterxml.jackson.databind.SerializerProvider._createUntypedSerializer(SerializerProvider.java:1215)
at com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1167)
at com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:490)
at com.fasterxml.jackson.databind.SerializerProvider.findTypedValueSerializer(SerializerProvider.java:688)
at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:107)
at com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:3613)
at com.fasterxml.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:2980)
Gibt es trotzdem kann ich Rufe Jacksons ObjectMapper in der Klasse selbst auf, damit ich die Json String besser mit dem Objekt selbst verbinden kann?
Bearbeiten: Ich habe vergessen zu erwähnen, dass ich Lomboks Daten hier verwende, so dass die Setter und Getters für jede einzelne Eigenschaft nicht benötigt wird.
Es wird nicht funktionieren, da Felder anscheinend nicht "Getters" und "Setter" haben. Es wird 'JsonMappingException' geworfen. –
Danke für die Antwort (auch an alle anderen). Ich entschied mich, dieser Antwort das Häkchen zu geben, weil es die erste Antwort war und gab auch einige Tipps für das Objektdesign. – SnG