给定以下JSON...
{
"loginData": {
"username": "foobar",
"password": "secret"
},
"personalData": {
"givenName": "Foo",
"familyName": "Bar"
}
}
这是我的POJO(可能有一些冗长的Lombok注解)的样子。它被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;
}
}
我想知道是否有可能使用相对较新的Java record
概念来复制此结构。
public record LoginData(String username, String password) {}
但是,记录是否也可以用于嵌套/复杂对象,这些对象将通过Jackson转换为JSON?
1条答案
按热度按时间waxmsbnn1#
根据我的理解,您可以使用类似于普通对象/类的记录。这也意味着您可以使用记录作为其他记录的参数。我创建了一个简单的示例,用于将输入JSON字符串转换为包含记录的嵌套对象:
界面定义三条记录:
要测试的主类:
输出量: