次のようなjsonファイルがあります。
{
"ANIMALS": {
"TYPE": "MAMMAL",
"COLOR": "BLACK",
"HEIGHT": "45",
}
}
しかし、プロパティが見つからないというエラーが発生します。動物(小文字)に変更すると。それは正常に動作します。正しく解析されるこのサンプル json ファイルのモデル クラスを教えてください。
Jackson の設定方法に応じて、Deepak の回答に基づいて構築すると、プロパティの代わりに getter と setter を配置する必要がある@JsonProperty
か、結果の JSON でプロパティが重複する可能性があります。
例
@JsonProperty("ANIMALS")
private string animals;
結果は...{animals:"foo",ANIMALS:"foo"}
private string animals;
@JsonProperty("ANIMALS")
public String getAnimals(){...}
結果は...{ANIMALS:"foo"}
ケースに新しい命名戦略を実装する必要があります。
class UpperCaseNamingStrategy extends PropertyNamingStrategy.PropertyNamingStrategyBase {
private static final long serialVersionUID = 1L;
@Override
public String translate(String arg0) {
return arg0.toUpperCase();
}
}
その後、構成しますObjectMapper
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setPropertyNamingStrategy(new UpperCaseNamingStrategy());
@JsonProperty
注釈も参照してください。
@JsonProperty アノテーションを使用してこの問題を解決しました。
@JsonProperty("ANIMALS")
private string animals;
JSON (シリアル化) を生成していないが、大文字と小文字を気にせずにオブジェクトを使用したい場合。
アニマルまたはアニマルを受け取ることができます:
ObjectMapper mapper = new ObjectMapper();
mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);