如何使用参数将带有参数的uri解析为Java中的Map

时间:2015-12-16 21:55:10

标签: java parsing dictionary

我想解析以下内容:

full_uri= "path/for/uri?$param1=value1&$param2=value2

以某种方式将uri作为字符串,将参数作为地图。我现在正在尝试的是:

String[] full_uri_split = full_uri.split("\\?");
String uri = full_uri_split[0];
String parameters = full_uri_split[1];

这给了我2个变量,1个是uri,另一个是包含所有参数的字符串,格式为:

parameters = "$param1=value1&$param2=value2"

我的下一个最好的猜测就是将其拆分为&体征:

String parameters_split = parameters.split("&");

返回:

["$param1=value1", "$param2=value2"]

现在我想把它转换成一个看起来像这样的地图:

"param1":"value1",
"param2":"value2"

我不知道该如何去做。

我确信我可以通过做更多分裂来实现它,但它看起来非常低效。基本上,我想转向:

full_uri = "path/for/uri?$param1=value1&$param2=value2"

uri = "path/for/uri"
params = {
    "param1": "value1",
    "param2": "value2"
}

1 个答案:

答案 0 :(得分:1)

这是一个使用循环的解决方案。

Map<String, String> params = new HashMap<>();
for (String s : parameters_split){
    params.put(s.split("=")[0], s.split("=")[1]);
}