我在Rust中解析JSON数据的目标到目前为止是这样的:
extern crate rustc_serialize;
use rustc_serialize::json::Json;
use std::fs::File;
use std::io::copy;
use std::io::stdout;
fn main() {
let mut file = File::open("text.json").unwrap();
let mut stdout = stdout();
let mut str = ©(&mut file, &mut stdout).unwrap().to_string();
let data = Json::from_str(str).unwrap();
}
并且text.json
是
{
"FirstName": "John",
"LastName": "Doe",
"Age": 43,
"Address": {
"Street": "Downing Street 10",
"City": "London",
"Country": "Great Britain"
},
"PhoneNumbers": [
"+44 1234567",
"+44 2345678"
]
}
我接下来该怎么解析它?我的主要目标是获取像这样的JSON数据,并从中解析一个键,比如Age。
let obj = data.as_object().unwrap();
并得到了thread '<main>' panicked at 'called
Option::unwrap()on a
Nonevalue', C:/bot/slave/stable-dist-rustc-win-32/build/src/libcore\option.rs:362 }An unknown error occurred
。 - Vikaton