2017-10-16 19 views
0

JSONドキュメントのキーのいくつかをクラスの値として使用したいと思い、マップを使用したくありません。Jackson JSONキーの値がクラス

私は、次の形式でJSON文書を持っている:

{ 
"GateWay": { 
    "API1": { 
    "Infos": "More", 
    "Meta": [1,2,3] 
    }, 
    "API2": { 
    "Infos": "Even more", 
    "Meta": [4,5,6] 
    }, 
    "API3": { 
    "Infos": "Nope", 
    "Meta": [] 
    } 
} 

私は、この構造は、このようなJavaクラスとして非直列化することにしたい。

class GateWays { 
    List<GateWay> gateWays; 
} 

class GateWay { 
    String name; // API1, API2 or API3 for example 

    String infos; 

    List<Integer> meta; 
} 

は、どのように私は取るためにジャクソンを教えてくださいマップを使用する代わりにクラスのキーとしてのキー?次のように

+0

私はJSON契約を破っているとは思わないが、JSONはそのままで、JAVAコード内のインポートされたデータを扱うための追加のマッピングなしに、より便利なPOJO構造にインポートしたい。 –

答えて

0

試してみてください。

class Result{ 
    GateWay GateWay; 

    //getter and setter 
} 

class GateWay { 
    Api API1; // API1, API2 or API3 for example 
    //getter and setter 
} 

class Api{ 
    String Infos; 
    List<Integer> Meta; 

    //getter and setter 
} 
+0

申し訳ありませんが、私の質問が十分ではなく、キーが固定されていないので、API1000などの名前が付けられている可能性もあります... –

0

私はちょうど下記検討していますが、

@POST 
@Produces(MediaType.APPLICATION_JSON) 
@Consumes(MediaType.APPLICATION_JSON) 
public Response YourPostMethod(@Context UriInfo info, GateWays gateways, @HeaderParam("your_header_porom") String yourheaderporom ......); 

は今、あなたは以下のように2つのクラスを宣言する必要があります...あなたのPOSTメソッドである(一つは内部クラスはこちら)

希望すると、これが役立ちます。

+0

JSONはそのままで、データ構造を変更できません。 –

関連する問題