将向量解析为数组字符串
Parsing Vector to Array String
我是 Rust 新手。
我试着写一个websocket客户端。
这是我的格式消息:
"[integer, "string", object]"
是否可以将所有值存储在 Vector 中,例如:
let msg: Vec<interface> = vec![123, "event", AnyObject{}];
如何将其转换为字符串,反之亦然。
提前致谢
从概念上讲,您想使用枚举。 Rust 中使用的枚举类型称为标记联合。从本质上讲,您可以将它们视为可以保存数据的枚举。
enum Interface {
Int(i32),
String(&'static str),
Object(AnyObject),
// etc
}
// You can then create a vec of different enum variants
let msg: Vec<Interface> = vec![Interface::Int(123), Interface::String("event"), Interface::Object(AnyObject{})];
假设您指的是JSON,那么推荐的解决方案是使用serde
with serde_json
。 serde_json
提供了一个 Value
枚举,您可以使用它来表示未知布局中的 JSON 数据。
// Copied from serde_json docs
enum Value {
Null,
Bool(bool),
Number(Number),
String(String),
Array(Vec<Value>),
Object(Map<String, Value>),
}
但是,您不需要直接使用 Value
(除非您愿意),因为 serde_json
提供了一个宏,让您可以像 JSON 一样格式化代码,从而简化此操作].
use serde_json::{json, Value};
let msg: Value = json!([123, "event", {}]);
// You can then serialize a Value into JSON format
println!("{:?}", msg.to_string());
// Output: "[123,\"event\",{}]"
我建议通读 overview,因为它们有许多使用 JSON 的便捷方法。
我是 Rust 新手。
我试着写一个websocket客户端。
这是我的格式消息:
"[integer, "string", object]"
是否可以将所有值存储在 Vector 中,例如:
let msg: Vec<interface> = vec![123, "event", AnyObject{}];
如何将其转换为字符串,反之亦然。 提前致谢
从概念上讲,您想使用枚举。 Rust 中使用的枚举类型称为标记联合。从本质上讲,您可以将它们视为可以保存数据的枚举。
enum Interface {
Int(i32),
String(&'static str),
Object(AnyObject),
// etc
}
// You can then create a vec of different enum variants
let msg: Vec<Interface> = vec![Interface::Int(123), Interface::String("event"), Interface::Object(AnyObject{})];
假设您指的是JSON,那么推荐的解决方案是使用serde
with serde_json
。 serde_json
提供了一个 Value
枚举,您可以使用它来表示未知布局中的 JSON 数据。
// Copied from serde_json docs
enum Value {
Null,
Bool(bool),
Number(Number),
String(String),
Array(Vec<Value>),
Object(Map<String, Value>),
}
但是,您不需要直接使用 Value
(除非您愿意),因为 serde_json
提供了一个宏,让您可以像 JSON 一样格式化代码,从而简化此操作].
use serde_json::{json, Value};
let msg: Value = json!([123, "event", {}]);
// You can then serialize a Value into JSON format
println!("{:?}", msg.to_string());
// Output: "[123,\"event\",{}]"
我建议通读 overview,因为它们有许多使用 JSON 的便捷方法。