1
我的應用使用this GsonRequest
實現來執行HTTP請求。 某些請求參數不是簡單的字符串鍵和字符串值,但是某些值也可以是映射。Android - 將嵌套地圖轉換爲JSON字符串
例如:
{
"Key1" : "value",
"Key2" : {
"Key2.1" : "value",
"Key2.2" : "value",
"Key2.2" : "value"
},
"Key3" : "value"
}
的JSON以上參數可以使用HashMap
就像這樣可以了:
Map<String, String> subMap = new HashMap<String, String>();
subMap.put("Key2.1", "value");
subMap.put("Key2.2", "value");
subMap.put("Key2.3", "value");
Map<String, String> map = new HashMap<String, String>();
map.put("Key1", "value");
map.put("Key2", subMap.toString());
map.put("Key3", "value");
然後我打電話GsonRequest
並通過map
。
然而,請求時,發送的JSON居然是:
{
"Key1" : "value",
"Key2" : "{Key2.1 = value, Key2.2 = value, Key2.2 = value}", <-- This is wrong
"Key3" : "value"
}
我試圖巢地圖使用JSONObject
,沒有成功:
map.put("Key2.2", new JSONObject(subMap).toString());
會產生JSON :
...
"Key2" : "{\"Key2.1\" : \"value\", \"Key2.2\" : \"value\", \"Key2.2\" : \"value\"}",
...
這一個看起來更好,如果我能逃脫斜線它會是正確的,但不是。
如何正確嵌套地圖並正確獲取JSON?