我正在开发 API 包装器,但在反序列化空 JSON 对象时遇到了一些麻烦。
API 返回此 JSON 对象。请注意以下位置的空对象entities:
{
"object": "page",
"entry": [
{
"id": "1158266974317788",
"messaging": [
{
"sender": {
"id": "some_id"
},
"recipient": {
"id": "some_id"
},
"message": {
"mid": "mid.$cAARHhbMo8SBllWARvlfZBrJc3wnP",
"seq": 5728,
"text": "test",
"nlp": {
"entities": {} // <-- here
}
}
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
这是我对message属性的等效结构(已编辑):
#[derive(Serialize, Deserialize, Clone, Debug)]
pub struct TextMessage {
pub mid: String,
pub seq: u64,
pub text: String,
pub nlp: NLP,
} …Run Code Online (Sandbox Code Playgroud) 当我尝试运行测试时,我收到此异常:
thread 'persistent_log::doc::test::test_sync' panicked at 'called `Result::unwrap()` on an `Err` value: IoError(Error { repr: Os { code: 9, message: "Bad file descriptor" } })', ../src/libcore/result.rs:783
Run Code Online (Sandbox Code Playgroud)
术语:
#[derive(Copy, Clone, Debug, Hash, PartialEq, Eq, PartialOrd, Ord,RustcEncodable,RustcDecodable)]
pub struct Term(u64);
Run Code Online (Sandbox Code Playgroud)
测试:
fn create() {
File::create(&"term");
}
#[test]
fn test_sync() {
create();
let mut f = File::open(&"term").unwrap();
let term = Term(10);
encode_into(&term, &mut f, SizeLimit::Infinite).unwrap();
let decoded_term: Term = decode_from(&mut f, SizeLimit::Infinite).unwrap();
assert_eq!(decoded_term, term);
}
Run Code Online (Sandbox Code Playgroud)
我想将对象term写入文件,然后将其读入.