2012-10-14 78 views
0

有沒有一個標準的API調用(或設置呼叫),讓我的鍵/值對的列表編碼成一個單一的請求參數?不知何故,我從來沒有這樣做過。編碼鍵/值對列表爲URL請求參數

我所尋找的是產生編碼任意長的,將由指定的頁面被解碼的參數字符串的URL。例如:

http://someth.ing/page?params=xxxxxxxxxxxxx 

其中XXXXXXX是的

Map<String, String> 

編碼形式,或者是不可用,則

List<String> 

我知道我的選擇是隻編碼每個鍵作爲自己的請求參數,但是這在解碼方面創建了許多解析工作,我寧願避免。有什麼建議麼?

+1

沒有標準。要自動完成的事情,我會設計一個前綴,並將其添加到鍵的名稱PARAMS(有點像「?mymap_key1 =值&mymap_key2 =數值...'。檢索所有參數,檢查前綴和重建地圖可以做到通過 – SJuan76

回答

1

你可以只轉換從JSON到/。你可以在其他Google Gson使用此:

Map<String, String> data = createItSomehow(); 
String dataAsJson = new Gson().toJson(data); 
String url = "http://example.com/some?data=" + URLEncoder.encode(data, "UTF-8"); 
// ... 

而在另一邊,假設一個servlet:

String dataAsJson = request.getParameter("data"); 
Map<String, String> data = new Gson().fromJson(json, new TypeToken<Map<String, String>>(){}.getType()); 
// ... 
+0

可重複使用的輔助函數,這是一個有趣的想法我沒有考慮。使用JSON的一大優勢是,它將使處理在客戶端(如果我曾經想)要容易得多。我會在接下來的幾天玩它並報告回來。 – AlanObject