Jackson 映射器如何知道每个 Json 对象中的哪个字段要分配给类对象?
假设我有一个像这样的Json对象:
{
"name": "Bob Dole",
"company": "Bob Dole Industries",
"phone": {
"work": "123-456-7890",
"home": "234-567-8901",
"mobile": "345-678-9012"
}
}
为了帮助我阅读它,我将Jackson的对象映射器与以下类一起使用:
public class Contact {
public static class Phone {
private String work;
private String home;
private String mobile;
public String getWork() { return work; }
public String getHome() { return home; }
public String getMobile() { return mobile; }
public void setWork(String s) { work = s; }
public void setHome(String s) { home = s; }
public void setMobile(String s) { mobile = s; }
}
private String name;
private String company;
private Phone phone;
public String getName() { return name; }
public String getCompany() { return company; }
public Phone getPhone() { return phone; }
public void setName(String s) { name = s; }
public void setCompany(String s) { company = s; }
public void setPhone(Phone p) { phone = p; }
}
我的问题是,对象映射器如何(使用最简单的解释)如何“反序列化”Json对象?我认为它与变量名称匹配,但将它们更改几个字母不会影响输出。然后,我尝试切换 set() 函数的顺序,但这没有做任何事情。我也尝试了两者,但那也没用。我猜这里有更复杂的东西在工作,但那又如何呢?
我试图查看文档和过去的代码,但我没有看到对我有意义的解释。