web-dev-qa-db-ja.com

ジャクソン:Json設定値を無視

次のjsonファイルがあります。


{
  "segments": {        
            "externalId": 123, 
            "name": "Tomas Zulberti", 
            "shouldInform": true, 
            "id": 4
   }
}

ただし、Javaモデルは次のとおりです。


public class Segment {

    private String id;
    private String name;
    private boolean shouldInform;

    // getter and setters here...
}

ジャクソンが解析しているとき、フィールド "externalId"のゲッターまたはセッターがないため、例外が発生します。 jsonフィールドを無視するために使用できるデコレータはありますか?

33
tzulberti

アノテーション@JsonIgnoreProperties;スキップしたい値が1つだけの場合は、次のようになります。

@JsonIgnoreProperties({"externalId"})

または使用できないものを無視するには:

@JsonIgnoreProperties(ignoreUnknown=true)

それを行うには他の方法もあります。残りのチェックアウトは FasterXML Jackson wiki です。

69
StaxMan

また、mapper.enable(DeserializationFeature .FAIL_ON_IGNORED_PROPERTIES);を使用することもできます。代わりに@JsonIgnoreProperties(ignoreUnknown = true)

しかし、特定のプロパティには使用できます

@JsonIgnoreProperties({"externalId"})
public class Segment {

    private String id;
    private String name;
    private boolean shouldInform;

    // getter and setters here...
}
2
SamDJava