Sae*_* M. 7 parse-url query-string rust
我有这样的网址:
http%3A%2F%2Fexample.com%3Fa%3D1%26b%3D2%26c%3D3
Run Code Online (Sandbox Code Playgroud)
我解析它hyper::Url::parse
并获取查询字符串:
let parsed_url = hyper::Url::parse(&u).unwrap();
let query_string = parsed_url.query();
Run Code Online (Sandbox Code Playgroud)
但它给了我一个字符串的查询.我想获取查询字符串HashMap
.这样的事情:
// some code to convert query string to HashMap
hash_query.get(&"a"); // eq to 1
hash_query.get(&"b"); // eq to 2
Run Code Online (Sandbox Code Playgroud)
Lam*_*iry 10
涉及几个步骤:
该.query_pairs()
方法将为您提供一对迭代器Cow<str>
.
调用.into_owned()
它会给你一String
对迭代器而不是对.
这是一个迭代(String, String)
,这是完全正确的形状,以.collect()
成HashMap<String, String>
.
把它放在一起:
let parsed_url = Url::parse("http://example.com/?a=1&b=2&c=3").unwrap();
let hash_query: HashMap<_, _> = parsed_url.query_pairs().into_owned().collect();
assert_eq!(hash_query.get("a"), "1");
Run Code Online (Sandbox Code Playgroud)
请注意,在hash_query
-since .collect()
重载时需要类型注释,您必须告诉编译器您想要哪种集合类型.
归档时间: |
|
查看次数: |
3035 次 |
最近记录: |