I have following classes
public class Car {
private String make;
private String model;
private TransmissionType transmissionType; // Manual/Automatic
private Transmission transmission;
}
public class Transmission {
}
public class AutomaticTransmission {
public Technology technology; // DCT/CVT/AMT
}
public class ManualTransmission {
public int numGears;
}
In this example, when the payload passed could be
{
"make": "Toyota",
"model": "Iris",
"transmissionType": "Automatic",
"transmission" {
"technology": "DCT"
}
}
or it could be
{
"make": "Merc",
"model": "C",
"transmissionType": "Manual",
"transmission" {
"numGears": 5
}
}
When this is passed to controller as body, it should be able to create respective class. How do I achieve this.
I tried using JsonTypeInfo
and JsonSubTypes
as shown in this answer but it necessitates me to move transmissionType
within Transmission
class, which is not the case for me.