У меня есть файл, содержащий объект JSON с неизвестными ключами. Я хотел бы декодировать этот объект в структуру, но не понимаю, как объявить эту структуру.Deserialising JSON object с rustc_serialize: зачем мне нужно реализовывать PartialEq?
extern crate rustc_serialize;
use rustc_serialize::json;
use std::collections::BTreeMap;
#[derive(RustcDecodable, Debug)]
struct MyStruct {
foo: u8,
bar: Vec<String>,
}
let raw_json = r#"{
"A": {
"foo": 2,
"bar": ["a", "b"],
},
"C": {
"foo": 1,
"bar": ["c", "d"],
},
:
}"#;
let j: BTreeMap<String, MyStruct> = json::decode(&raw_json).unwrap();
println!("{:?}", j.get("A").unwrap());
Следующая ошибка:
error: the trait `core::cmp::PartialEq` is not implemented for the type `MyStruct` [E0277]
let j: BTreeMap<String, MyStruct> = json::decode(&raw_json).unwrap();
^~~~~~~~~~~~
бы я должен реализовать Decodable
для MyStruct
себя тогда?
Вы пытались внедрить 'PartialEq', как предлагает сообщение об ошибке? – Shepmaster
Нет, tbh. Я думал, что ошибка неверна, поскольку это должно быть возможно. Я реализовал 'PartialEq' сейчас, и он работает. Тем не менее, я до сих пор не понимаю, зачем мне это нужно. Ни один из примеров онлайн, похоже, не делает этого. – Kreisquadratur
* для этого структурного равенства должно быть возможно получено * - никакие черты не производятся автоматически, поэтому вам нужно добавить '# [вывод]'. – Shepmaster