小编典典

从Java中的查询字符串中提取参数及其值

json

所以假设我有一个像

"param1=value1&param2={"url":"http://somesite.com?someparam=somevalue&someparam1=somevalue1"}&param3=value3"

我需要它是:

param1: value1

param2: {"url":"http://somesite.com?someparam=somevalue&someparam1=somevalue1"}

param3: value3

用Java解析此问题的最佳方法是什么?到目前为止,我找不到使用标准Java库的解决方案,也不想重新发明轮子。

我试过了(但是如果我只放像我这样的查询参数,那将不起作用):

String url = "http://www.example.com/something.html?one=11111&two=22222&three=33333";
List<NameValuePair> params = URLEncodedUtils.parse(new URI(url), "UTF-8");

for (NameValuePair param : params) {
    System.out.println(param.getName() + " : " + param.getValue());
}

阅读 152

收藏
2020-07-27

共1个答案

小编典典

为什么不使用正则表达式之类的东西:

例如像这样的一个,".*\\?param1=(.*)&param2=(.*)&param3=(.*)$"它适用于您的url示例,这就是为什么我添加了这个.*\\?部分;)

这将适用于第一个样本("param1=value1&param2={"url":"http://somesite.com?someparam=somevalue&someparam1=somevalue1"}&param3=value3"
-> param1=(.*)&param2=(.*)&param3=(.*)$

当然,如果您的参数名称也不是您所不知道的

2020-07-27