2017-09-04 7 views
0

私はジャクソンのテーマで新しいですが、私は問題を解決するのに役立つ答えは見つかりませんでした。秒間 実体でルート名をプロパティとして使用

のは、私はこのクラスを持っていると仮定しましょう:

public class Airport { 
     private String name; 
     private String code; 
     ... 
    } 

私のJSONは次のようになります。

"XXX": { 
     "name": "SomeName", 
    } 

私はXXX(ツリーのルート)を置くためにジャクソンを強制したいと思いますにクラスのプロパティcode私はJSONからオブジェクトを作成するために使用する標準的な方法はtreeToValueを使用している:ルート名「XXX」が「JsonNode」(予想と一致していません:私はDeserializationFeature.UNWRAP_ROOT_VALUEを有効にすると

ObjectMapper mapper = new ObjectMapper(); 
String airports = "above Json"; 
JsonNode airportsTree = mapper.readTree(airports.toString()); 
Airport airport = mapper.treeToValue(airportsTree, Airport.class); 

は、しかし、私は

JsonMappingExceptionを取得しています)タイプ[単純型、クラスcom.fasterxml.jackson.databind.JsonNode]

答えて

0

のためにあなたはジャクソン

ため root nameヒントを置く必要があります`ABZ`
+0

に動作します。しかし、問題は、この値は、レコードごとに異なることである交尾します値(sisのルート名)はクラスの 'name'部分に移動します。 – Silwest

+0

は、私は' XXX'ことを意味し、 'XXX'、 ' XYZ':あなたはDeserializationFeature.UNWRAP_ROOT_VALUEを有効にすると

@JsonRootName(value = "XXX") public class Airport { private String name; private String code; ... } 

それがなければならない

Silwest

関連する問題