我有一个用例,我们必须将不同的JSON发送到不同的服务器。
区别仅在于JSON密钥,密钥携带的含义相同,数据也是如此。
例如,服务器XYZ希望以这种格式发送JSON数据:
{ "firstName":"Sam", "lastName":"Jones"}
现在服务器ABC希望以这种格式发送JSON数据:
{ "fName":"Sam", "lName":"Jones"}
并通过POJO填充firstName和lastName数据。
那么,我该如何做到这一点?我不想用if-else条件来混淆代码。
但是wnat会有一些像动态加载的模板一样工作并创建JSON数据并将其恢复回POJO。
答案 0 :(得分:0)
您应该创建两个POJO。每个服务器一个。每个POJO可以具有不同的属性名称,以满足每个服务器的要求。
或者POJO可以具有相同的属性名称,但需要注释以生成不同的JSON属性。像杰克逊这样的JSON库可以使用JsonProperty注释来完成此任务。
答案 1 :(得分:0)
这个策略怎么样?
interface People{
public String getRegularFirstName();
public String getRegularLastName();
}
//“{”firstName“的类:”Sam“,”lastName“:”Jones“}”
class PeopleData2 implements People{
private String firstName;
private String lastName;
public String getRegularFirstName(){
return firstName;
}
public String getRegularLastName(){
return lastName;
}
//getter setter here..
}
//“{”fName“的类:”Sam“,”lName“:”琼斯“}”
class PeopleData1 implements People{
private String fName;
private String lName;
public String getRegularFirstName(){
return fName;
}
public String getRegularLastName(){
return lName;
}
//getter setter here..
}
这不是dinamically策略,因为它需要添加新格式出现的类。 但它有助于系统可扩展性