作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我需要将一个平面 JSON 对象反序列化为一个 Java 对象,并将某些属性设置为子对象。
{
"name": "abcd",
"addressLine1": "123",
"addressLine2": "1111"
}
Class Student {
String name;
Address address;
}
Class Address {
String line1;
String line2;
}
如何使用 Jackson 将我的 JSON 反序列化为 Student
对象?我无法将 addressLine1 映射到 Student.Address.line1
和 addressLine2 到 Student.Address.line2
最佳答案
你可以这样定义你的数据类:
public static class Student {
String name;
@JsonUnwrapped
Address address;
}
public static class Address {
@JsonProperty("addressLine1")
String line1;
@JsonProperty("addressLine2")
String line2;
}
然后您可以以通常的方式使用 Objectmapper
- 无需任何额外的魔法或解决方法:
Student student = mapper.readValue(json, Student.class);
如果您传入的 json 字符串确实是您提供的格式(不带引号),那么还要添加:
mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
关于java - 如何将平面 JSON 转换为分层 java 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54386011/
我是一名优秀的程序员,十分优秀!