Jackson parse json with unwraping root, but without ability to set @JsonRootName
You can do it with mixin feature. You can create simple interface/abstract class like this:
@JsonRootName("transaction")
interface TransactionMixIn {
}
Now, you have to configure ObjectMapper
object:
ObjectMapper mapper = new ObjectMapper();
mapper.enable(DeserializationFeature.UNWRAP_ROOT_VALUE);
mapper.addMixInAnnotations(Transaction.class, TransactionMixIn.class);
And finally you can use it to deserialize JSON:
mapper.readValue(json, Transaction.class);
Second option - you can write custom deserializer for Transaction
class.