从Java中的查询字符串中提取参数及其值
所以假设我有一个像
"param1=value1¶m2={"url":"http://somesite.com?someparam=somevalue&someparam1=somevalue1"}¶m3=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());
}
回答:
为什么不使用正则表达式之类的东西:
例如像这样的一个,".*\\?param1=(.*)¶m2=(.*)¶m3=(.*)$"
它适用于您的url示例,这就是为什么我添加了这个.*\\?
部分;)
这将适用于第一个样本("param1=value1¶m2={"url":"http://somesite.com?someparam=somevalue&someparam1=somevalue1"}¶m3=value3"
-> param1=(.*)¶m2=(.*)¶m3=(.*)$
当然,如果您的参数名称也不是您所不知道的
以上是 从Java中的查询字符串中提取参数及其值 的全部内容, 来源链接: utcz.com/qa/416543.html