HashMap到String Rust

fcy6dtqo  于 2024-01-08  发布在  其他
关注(0)|答案(2)|浏览(126)

如何在rust中将HashMap转换为字符串?
最坏的情况是,如果不可能将HashMap字符串化(可以通过循环键和值来完成,但这太多了)......我如何将其转换为JSON?
在我的例子中,我有{9a6743c2-7c49-4c4d-a136-44114ca50246: "Larry", 9a6743c2-7c49-4c4d-a136-44114ca50236: "Farry"}作为我的哈希Map.两个to字段,条目{id:name}。我想把它发送给客户端,所以我可以JSON化它或String化它。

0lvr5msh

0lvr5msh1#

您可以使用serde_json crate来实现此目的。

use std::collections::HashMap;

fn main() {
    let mut data: HashMap<&'static str, i32> = HashMap::new();
    data.insert("purpose", 42);
    data.insert("nice", 69);

    let serialized_data = serde_json::to_string(&data).unwrap();
    println!("{}", serialized_data);
}

个字符

lnvxswe2

lnvxswe22#

如果你想将map转换为JSON以外的格式的String,你可以使用Itertools的trait join方法:

use std::collections::HashMap;
use itertools::Itertools;

fn try_stringify() {
    let mut data = HashMap::new();
    data.insert("purpose", 42);
    data.insert("nice", 69);

    let serialized_data = data.iter().map(|(k,v)| format!("{}={}", k, v)).join(", ");
    println!("{}", serialized_data);
}

字符串
产出:

nice=69, purpose=42

相关问题