2016-10-10 10 views
0

私はjavascriptからjsonのアップデートmongoDbコレクションのリクエストを受けました。 私のJavaクラス(Person)へのjsonマッピングの一部ですが、ダイナミックフィールドの名前のためJsonObjectにマップされた内部Jsonです。 ダイナミックフィールドの名前をJsonObjectにマッピングすることはできません。 は、どのように私はそれを維持するためのPersonクラスでdyamicフィールドをマップすることができますモンゴDBに春休みサービスダイナミックjsonフィールドを消費

ですが、結果は次のとおりです。私は「person_detail」と「address_detail」意志がキーのリストが含まれていることを期待し

{ "person": "david", 
    "family": "david family", 
    "address":"david street", 
    "person_detail":{ 
        "members":{} **<=== should be list of key value** 
       }, 
    "address_detail":{ 
        "members":{} **<=== should be list of key value** 
       } 
} 

私は@requestBodyでjsonを消費します。 動的フィールドを取得するクラスの名前を定義するにはどうすればよいですか。例えば

{ "person": "david", 
    "family": "david family", 
    "address":"david street", 
    "person_detail":{... collection of unknown pairs key value ....}, 
    "address_detail":{... collection of unknown pairs key value ....} 
} 

public Class Person{ 

    private String person; 
    private String family; 
    private JsonObject person_detail; 
    private JsonObject address_detail; 

    getter... 

    setter... 

} 

私のコントローラ:

@RequestMapping(value={"/updatePerson"},method=RequestMethod.POST,consume="application/json") 
public @ResponseBody ClientReturn clientReturn updatePerson(@RequestBody Person person) { 

    ...... 

} 
+0

仕事です。それをJSONArrayにマッピングする必要があります。あなたがジャクソンを使用していた場合は、それを直接リストにマップすることができます。 – HARDI

答えて

1

クライアントからのキー値のリストを掲示する方法のためのソリューションがMap<String,Object>.

としてjsonObject を定義することです

今ではあなたはJSONオブジェクトにリストをマップしようとしている私のため

public Class Person{ 

    private String person; 
    private String family; 
    private Map<String,Object> person_detail; 
    private Map<String,Object> address_detail; 

    getter... 

    setter... 

}