2016-08-11 2 views
3

Spring RestTemplateを使用して、GET requestをサードパーティのサービスに送信しています。それはlist of some entitiesを表す巨大なJSONを返します。しかし、すべてのエンティティは本当に大きく、膨大な数の不要なデータが含まれています。私はすべてのエンティティから3つのフィールドだけを取得する必要があります。どのように私はそれを達成するために私のモデルを構築できますか?たとえば、私たちは、このJSON持っている場合:RestTemplateを使用した部分的なJSON取得

{ 
    "entity1": "foo", 
    "entity2": "bar", 
    "entity3": "...", 
    "entity4": { 
     "aaa": "...", 
     "bbb": "...", 
     "ccc": 5 
    }, 
    "entity5": [ 
     "...", 
     "..." 
    ] 
}, { 
    "entity1": "foo", 
    "entity2": "bar", 
    "entity3": "...", 
    "entity4": { 
     "aaa": "...", 
     "bbb": "...", 
     "ccc": 5 
    }, 
    "entity5": [ 
     "...", 
     "..." 
    ] 
} 

をそして私は、クラスを持っている:

public class SomeModel implements Serializable { 

    private static final long serialVersionUID = 1L; 

    private Long entity1; 
    private String entity2;  
} 

は、どのように私は、このクラスのインスタンスの配列にこのJSONに変換することができますか?あなたはジャクソンを使用している場合

答えて

2

、次のような、@JsonIgnoreProperties(ignoreUnknown = true)とモデルクラスに注釈を付けることができます:

@JsonIgnoreProperties(ignoreUnknown = true) 
public class PosterDishModel implements Serializable { 

    private static final long serialVersionUID = 1L; 

    private Long entity1; 
    private String entity2;  
} 

基本的には、受信したオブジェクト内の任意の未知のプロパティを破棄するジャクソンに指示します。

これはネットワーク経由でオブジェクト全体の転送を妨げるものではなく、トラフィックは同じですが、逆シリアル化するオブジェクトには不要なフィールドとデータは含まれません。

+0

ありがとう、それは助けました! :) – Alesto

関連する問題