如何在 Rust 中将 JSON 字符串转换为 HashMap?
How to convert JSON String to HashMap in Rust?
我收到如下字符串(不在JSON或HashMap中)作为键值对来自隐式 JSONWebkey
板条箱:
{ "kid":"kid-value",
"kty":"RSA",
"use":"sig",
"n":"n-value",
"e":"e-value" }
现在如何转换为正确的 HashMap
以提取“e”和“n”的键和值?或者有没有更简单的方法来提取“e”和“n”的精确值?
字符串是JSON,所以你应该只解析它。默认情况下 serde_json
忽略所有未知字段,因此只声明一个包含所需字段的结构就足够了:
#[derive(serde::Deserialize)]
struct Values {
n: String,
e: String,
}
fn main() -> Result<()> {
let s = r#"{ "kid":"kid-value",
"kty":"RSA",
"use":"sig",
"n":"n-value",
"e":"e-value" }"#;
let value = serde_json::from_str::<Values>(s)?;
println!("{}", value.e);
println!("{}", value.n);
Ok(())
}
我收到如下字符串(不在JSON或HashMap中)作为键值对来自隐式 JSONWebkey
板条箱:
{ "kid":"kid-value",
"kty":"RSA",
"use":"sig",
"n":"n-value",
"e":"e-value" }
现在如何转换为正确的 HashMap
以提取“e”和“n”的键和值?或者有没有更简单的方法来提取“e”和“n”的精确值?
字符串是JSON,所以你应该只解析它。默认情况下 serde_json
忽略所有未知字段,因此只声明一个包含所需字段的结构就足够了:
#[derive(serde::Deserialize)]
struct Values {
n: String,
e: String,
}
fn main() -> Result<()> {
let s = r#"{ "kid":"kid-value",
"kty":"RSA",
"use":"sig",
"n":"n-value",
"e":"e-value" }"#;
let value = serde_json::from_str::<Values>(s)?;
println!("{}", value.e);
println!("{}", value.n);
Ok(())
}