Given the following JSON...
{
"loginData": {
"username": "foobar",
"password": "secret"
},
"personalData": {
"givenName": "Foo",
"familyName": "Bar"
}
}
This is what my POJO (with some maybe verbose Lombok annotations) looks like. It gets (de-)serialized by Jackson:
@Builder
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class User {
private LoginData loginData;
private PersonalData personalData;
@Builder
@Getter
@NoArgsConstructor
@AllArgsConstructor
public static class LoginData {
private String username;
private String password;
}
@Builder
@Getter
@NoArgsConstructor
@AllArgsConstructor
public static class PersonalData {
private String givenName;
private String familyName;
}
}
I wonder if it is possible to replicate this structure using the relatively new concept of a Java record. I'm aware of a simple record like:
public record LoginData(String username, String password) {}
But can records also be used for nested/complex objects which shall be converted to JSON with Jackson?