3

我正在rocket.rs 中创建一个REST API,并有一个函数返回一个元组向量,我需要将其返回到Web 前端。向量的形式为[(1, "abc"), (2, "mno"), (3, "xyz")]

我需要以 JSON 列表形式发送出去[{"score": 1, "text": "abc"}, {"score": 2, "text": "mno"}, {"score": 3, "text": "xyz"}]

我如何在 Rust 中做到这一点?我使用serdeas对其进行了测试

let my_list: Vec<(i32, String)> = vec![
    (1, "abc".to_string()),
    (2, "feg".to_string()),
    (3, "xyz".to_string()),
];
let serialized = serde_json::to_string(&my_list).unwrap();

println!("serialized = {}", serialized);

我需要一种方法来创建键、值对并进行转换。这样做的方法是什么?

4

1 回答 1

4

你为什么使用元组?如果您的元组字段具有“语义”名称,您应该考虑使用结构,这也应该解决您的序列化问题:

#[derive(Clone,PartialEq,Eq,PartialOrd,Ord,Hash,Debug,Serialize,Deserialize)]
struct Entry {
    pub score: i32,
    pub text: String,
}
于 2017-11-11T11:26:00.150 回答