0

異なる JSON を異なるサーバーに送信する必要があるユース ケースがあります。

違いはJSONキーのみです。キーが運ぶ意味は同じであり、データも同じです。

たとえば、サーバー XYZ は、JSON データを次の形式で送信することを望んでいます。

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

サーバー ABC は、JSON データを次の形式で送信する必要があります。

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

また、firstName と lastName のデータは POJO を介して入力されます。

それで、どうすればこれを達成できますか?if-else 条件でコードを乱雑にしたくありません。

しかし、動的にロードされたテンプレートのように機能し、JSON データを作成し、それを POJO に取得する機能が必要です。

4

2 に答える 2

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 に答える
0

2 つの POJO を作成する必要があります。サーバーごとに 1 つ。各 POJO は、各サーバーの要件を満たすために異なるプロパティ名を持つことができます。

または、POJO は同じプロパティ名を持つことができますが、異なる JSON プロパティを生成するように注釈を付けることができます。Jackson のような JSON ライブラリは、JsonPropertyアノテーションを使用してこれを行うことができます。

于 2013-03-22T05:36:16.527 に答える