JSON - cannot deserialize from Object value

internet

Top Contributor
Hallo zusammen,

ich habe folgende Klasse:
Java:
public class EventObject {

    private String id;
    private Object data;

}

private Object data kann verschiedene Entitäten beinhalten.
Beim deserialize bekomme ich folgendes Problem (Jackson):
(no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)

Was mache ich falsch / wie muss ich die Klasse entsprechend annotieren?
 
Hallo zusammen,

ich habe folgende Klassen:

Java:
public class WebhookEvent {

    private String apiVersion;
    private List<WebhookEventObject> objectList;
    private String requestId;
    private String eventType;
}

public class WebhookEventObject {

    private String id;
    private Object data;
}

private Object data kann verschiedene Entitäten beinhalten.
Beim deserialisieren bekomme ich folgendes Problem (Jackson):
(no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)

Was mache ich falsch / wie muss ich die Klasse entsprechend annotieren, sodass sie typunabhängig ist bzw. über (falls notwendig) über
private Object data die Klassen auflisten, die es sein können?
 
Hallo zusammen,

ich habe folgende Klasse:
Java:
public class EventObject {

    private String id;
    private Object data;

}

private Object data kann verschiedene Entitäten beinhalten.
Beim deserialize bekomme ich folgendes Problem (Jackson):


Was mache ich falsch / wie muss ich die Klasse entsprechend annotieren?
zu einer Daten Klasse gehört ein Kostruktor.
am besten auch Getter und Setter sowie toString

Java:
public class EventObject {

    private String id;
    private Object data;

    public EventObject(String id, Object data) {
        this.id = id;
        this.data = data;
    }
}
 
Java:
public class EventObject {
   
    @JsonProperty("id")      
    private String id;
    @JsonProperty("data")  
    private Object data;
   
    // Constructor, getters, setters and toString()
 
}

Wie sieht der Json String aus?
 
das ist nicht das Problem... Ich habe Konstruktur und Getter & Setter aus Lesbarkeit oben weggelassen...

Das Problem scheint eher an der Liste / und "private Object data;" oder zu liegen?

Kommentiere ich die Liste aus, dann erhalte ich zwar immer noch eine Fehlermeldung... Keine Ahnung warum dies nun eine LinkedHashMap ist?
class java.util.LinkedHashMap cannot be cast to class MyClassDTO

Java:
public class Event {

//    private List<WebhookEventObjectGixxBilling> objectList;   
    private Object data;
    
    // + Getter / Setter + Konstruktor...
 
In Json heißt es zwar Objekt aber du musst in Java schon einen passenden Datentyp benutzen nicht Objekt.

Java:
{
        "number": 1,  // ist ein int
        "object": {   // eine neue Klasse  mit einen String
            "string":"Hallo"
        },
        "boolean": true,
      
    }
 
In Json heißt es zwar Objekt aber du musst in Java schon einen passenden Datentyp benutzen nicht Objekt.

Java:
{
        "number": 1,  // ist ein int
        "object": {   // eine neue Klasse  mit einen String
            "string":"Hallo"
        },
        "boolean": true,
    
    }
Das ist ja das Thema... ich möchte in "private Object data" jegliche Klassen hereinpacken...
Das habe ich nun mal bei WebhookEvent (private Object data ) hinzugefügt.. das klappt auch.... Problem scheint die Liste zu sein...
Muss ich diese irgendwie noch entsprechend annotieren?

Java:
public class WebhookEvent {

    private String apiVersion;
    private List<WebhookEventObject> objectList;
    private String requestId;
    private String eventType;
    private Object data; // funktioniert!
}

public class WebhookEventObject {

    private String id;
    private Object data;
}
 
ok... scheint gelöst zu sein...
Ich habe wohl einen Default Konstruktor bei WebhookEventObject benötigt... Der Konstruktor mit beiden Feldern hat wohl nicht gereicht...
 
Was man sich als faustformel merken - alles, was Injektion oder automatischer objekterzeugung zusammenhängt braucht oft einen default constructor
 

Zurück
Oben