【发布时间】:2017-09-22 00:11:51
【问题描述】:
我所拥有的只是请求 URI,我必须从中解析查询参数。我正在做的是将它们添加到 json/hashmap 并再次获取,如下所示
String requestUri = "name=raju&school=abcd&college=mnop&color=black&fruit=mango";
我所要做的就是最终将它分配给如下变量
String name = "raju";
String school = "abcd";
String college = "mnop";
String color = "black";
String fruit = "mango";
所以我正在解析请求 uri,如下所示
String[] paramsKV = requestUri.split("&");
JSONArray jsonKVArr = new JSONArray();
for (String params : paramsKV) {
String[] tempArr = params.split("=");
if(tempArr.length>1) {
String key = tempArr[0];
String value = tempArr[1];
JSONObject jsonObj = new JSONObject();
jsonObj.put(key, value);
jsonKVArr.put(jsonObj);
}
}
另一种方法是在哈希映射中填充相同的内容并获得相同的内容。另一种方法是将requestUri字符串与正则表达式匹配并获得结果。
举个例子来获取school 的值,我必须匹配字符串school 和下一个& 之间的值——这听起来不太好。
- 在 java 中解析查询字符串的更好方法是什么?
- 我怎样才能更好地处理以下事情?
我需要从上面的结果中构造另一个像下面这样的哈希映射
Map<String, String> resultMap = new HashMap<String, String>;
resultMap.put("empname", name);
resultMap.put("rschool", school);
resultMap.put("empcollege", college);
resultMap.put("favcolor", color);
resultMap.put("favfruit", fruit);
为了简单起见,我所要做的就是解析查询参数并通过以不同的方式命名key 来构造一个hashMap。我怎么能以简单的方式做到这一点?非常感谢您提供任何帮助。
【问题讨论】:
标签: java json hashmap deserialization