2016-10-10 80 views
0

我從javascript獲取了更新mongoDb集合的json請求。 JSON映射到我的Java類(人)的一部分,但內部JSON我映射到JsonObject因爲動態字段的名稱。 將dyamic字段的名稱映射到JsonObject不做工作。 我怎麼能映射Person類dyamic字段保持它作爲是蒙戈DB春天休息服務消費動態json字段

但結果是:

{ "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** 
       } 
} 

我想到的是「person_detail」和「address_detail」將包含鍵列表值

我使用@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

您試圖映射列表,以JSON對象的工作。你應該將它映射到JSONArray。如果您使用的是傑克遜,您可以直接將其映射到列表中。 – HARDI

回答

1

對於如何從客戶端發表鍵的值的列表中的解決方案是定義的JSONObject 爲Map<String,Object>.

現在這對我來說

public Class Person{ 

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

    getter... 

    setter... 

}