0

我有一个用例,我们必须将不同的 JSON 发送到不同的服务器。

区别仅在于 JSON 键之间,键携带的含义相同,数据也相同。

例如,服务器 XYZ 希望以这种格式发送 JSON 数据:

{ "firstName":"Sam", "lastName":"Jones"}

现在服务器 ABC 希望以这种格式发送 JSON 数据:

{ "fName":"Sam", "lName":"Jones"}

名字和姓氏数据是通过 POJO 填充的。

那么,我该如何实现呢?我不想用 if-else 条件弄乱代码。

但是 wnat 有一些东西可以像动态加载的模板一样工作并创建 JSON 数据并将其检索回 POJO。

4

2 回答 2

0

您应该创建两个 POJO。每个服务器一个。每个 POJO 可以有不同的属性名称来满足每个服务器的要求。

或者 POJO 可以具有相同的属性名称,但被注释以生成不同的 JSON 属性。像 Jackson 这样的 JSON 库可以使用JsonProperty注释来做到这一点。

于 2013-03-22T05:36:16.527 回答
0

这个策略怎么样?

1.定义要用作通用的接口..

interface People{
    public String getRegularFirstName();
    public String getRegularLastName();
}

2.定义每个POJO,实现接口

//“{“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”:“Jones”}的类

class PeopleData1 implements People{
    private String fName;
    private String lName;

    public String getRegularFirstName(){
        return fName;
    }
    public String getRegularLastName(){
        return lName;
    }
    //getter setter here..
}

3. 让每个 json 格式都配得上每个 POJO 类..

这不是动态策略,因为它需要在新格式出现时添加类。但这将有助于系统可扩展性

于 2013-03-22T06:26:00.027 回答