我无法使我的结构可编码/可解码:
enum MyEnum {
Enum1,
Enum2,
Enum3,
}
#[derive(RustcDecodable, RustcEncodable)]
pub struct MyStruct {
val1: MyEnum,
val2: i32,
val3 : BTreeMap<i64, Json>,
}
错误是:
the trait `rustc_serialize::serialize::Decodable` is not implemented for the type `rustc_serialize::json::Json`
the trait `rustc_serialize::serialize::Decodable` is not implemented for the type `rustc_serialize::json::MyEnum`
我对我需要实现的东西感到困惑?
我需要实现
RustcEncodable
而不是ToJson#to_json
。但是
RustcDecodable
呢?没有特质FromJson#from_json
在文档中说
rustc_serialize::Decodable/Encodable
但是,如果有Decodable
,我会需要ToJson#to_json
吗?无论如何,问题是如何使我自己的结构可编码为可解码的JSON?
最佳答案
可能您不应该使用rustc_serialize。它设计得不好且速度慢,仅支持很少的格式。推荐使用Serde进行序列化和反序列化的 crate 。它适用于稳定和夜间。