如何在 Rust 中将 vector 的字符串元素更改为 json?
How do I change the string element of vector to json in Rust?
["{\"from\":1,\"date\":1651619967}",
"{\"from\":1,\"date\":1651619961}"]
我有这种载体。我想以 Json.
的形式打印出这个向量中的字符串元素
[{
"from":1,
"date":1651619967
}
, {
"from":1,
"date":1651619967
}]
我想把它改成像上面那样漂亮的Json形式。我怎样才能做到这一点?唯一的答案是使用 for 语句?我想知道如何有效地做到这一点。
let values:Vec<String> = redis_conn
.zrevrange(room_key, 0, -1)
.expect("failed to execute ZREVRANGE for 'room_key'");
供参考,上面的vector是redis通过zrevrange得到的结果。
你的输入是一个 rust vec,包含 JSON 编码的字符串,如果我理解正确的话,你想获得整个东西的 pretty-printed 版本(包括包含 vec).
一种方法是使用serde_json
解析字符串,然后是to_string_pretty
方法获取漂亮的打印字符串:
use serde_json::{self, Value};
fn main() {
let input = vec![
"{\"from\":1,\"date\":1651619967}",
"{\"from\":1,\"date\":1651619961}"
];
// Convert input into Vec<Value>, by parsing each string
let elems = input.into_iter()
.map(serde_json::from_str)
.collect::<Result<Vec<Value>,_>>()
.unwrap();
let json_val = Value::Array(elems);
println!("{}", serde_json::to_string_pretty(&json_val).unwrap());
}
输出:
[
{
"date": 1651619967,
"from": 1
},
{
"date": 1651619961,
"from": 1
}
]
["{\"from\":1,\"date\":1651619967}",
"{\"from\":1,\"date\":1651619961}"]
我有这种载体。我想以 Json.
的形式打印出这个向量中的字符串元素[{
"from":1,
"date":1651619967
}
, {
"from":1,
"date":1651619967
}]
我想把它改成像上面那样漂亮的Json形式。我怎样才能做到这一点?唯一的答案是使用 for 语句?我想知道如何有效地做到这一点。
let values:Vec<String> = redis_conn
.zrevrange(room_key, 0, -1)
.expect("failed to execute ZREVRANGE for 'room_key'");
供参考,上面的vector是redis通过zrevrange得到的结果。
你的输入是一个 rust vec,包含 JSON 编码的字符串,如果我理解正确的话,你想获得整个东西的 pretty-printed 版本(包括包含 vec).
一种方法是使用serde_json
解析字符串,然后是to_string_pretty
方法获取漂亮的打印字符串:
use serde_json::{self, Value};
fn main() {
let input = vec![
"{\"from\":1,\"date\":1651619967}",
"{\"from\":1,\"date\":1651619961}"
];
// Convert input into Vec<Value>, by parsing each string
let elems = input.into_iter()
.map(serde_json::from_str)
.collect::<Result<Vec<Value>,_>>()
.unwrap();
let json_val = Value::Array(elems);
println!("{}", serde_json::to_string_pretty(&json_val).unwrap());
}
输出:
[
{
"date": 1651619967,
"from": 1
},
{
"date": 1651619961,
"from": 1
}
]