【发布时间】:2014-03-04 04:25:33
【问题描述】:
假设我有一个这样的 Json 对象:
{
"name": "Bob Dole",
"company": "Bob Dole Industries",
"phone": {
"work": "123-456-7890",
"home": "234-567-8901",
"mobile": "345-678-9012"
}
}
为了帮助我阅读它,我将 Jackson 的 Object Mapper 与以下类一起使用:
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() 函数的顺序,但这并没有做任何事情。我也尝试了两者,但这也没用。我猜这里有一些更复杂的东西在起作用,但是什么?
我试图查看文档和过去的代码,但没有看到对我有意义的解释。
【问题讨论】:
-
您是否也尝试过通过几个字母来更改 getter 和 setter?
-
我将
setEmail(String s)更改为setmmail(String s)但电子邮件字段的结果是相同的。我无法更改吸气剂,因为那会破坏我的程序。这是控制它的东西吗?