0

是否有标准 API 调用(或一组调用)允许我将键/值对列表编码为单个请求参数?不知何故,我以前从未这样做过。

我正在寻找的是生成一个 URL,该 URL 对将由指定页面解码的任意长的参数字符串进行编码。例如:

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

其中 xxxxxxx 是 a 的编码形式

Map<String, String>

或者如果那不可用,那么

List<String>

我知道我的替代方法是将每个键编码为其自己的请求参数,但这会在解码端产生大量解析工作,我宁愿避免。有什么建议么?

4

1 回答 1

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());
// ...
于 2012-10-14T15:10:19.793 回答