vij*_*jay 11 java json jackson deserialization
我必须使用Jackson库将json反序列化为Customer类
{
"code":"C001",
"city": "Pune",
"street": "ABC Road"
}
Run Code Online (Sandbox Code Playgroud)
和类作为
class Address{
String city;
String street;
}
class Customer{
String code;
Address address;
}
Run Code Online (Sandbox Code Playgroud)
我在堆栈Java jackson嵌入式对象反序列化中发现了类似的问题
但答案不适用于我的情况.另外我只想使用杰克逊图书馆.
如何将此json映射到Customer对象?
您可以在客户类的字段上放置@JsonUnwrapped注释Address.这是一个例子:
public class JacksonValue {
final static String JSON = "{\n"
+" \"code\":\"C001\",\n"
+" \"city\": \"Pune\",\n"
+" \"street\": \"ABC Road\"\n"
+"}";
static class Address {
public String city;
public String street;
@Override
public String toString() {
return "Address{" +
"city='" + city + '\'' +
", street='" + street + '\'' +
'}';
}
}
static class Customer {
public String code;
@JsonUnwrapped
public Address address;
@Override
public String toString() {
return "Customer{" +
"code='" + code + '\'' +
", address=" + address +
'}';
}
}
public static void main(String[] args) throws IOException {
final ObjectMapper mapper = new ObjectMapper();
System.out.println(mapper.readValue(JSON, Customer.class));
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
Customer{code='C001', address=Address{city='Pune', street='ABC Road'}}
Run Code Online (Sandbox Code Playgroud)