以下示例不起作用,但我无法弄清楚原因:
extern crate rustc_serialize;
use rustc_serialize::json;
fn main() {
let json_str = "{\"foo\": \"bar\"}";
let foo: String = json::decode(&json_str).unwrap().as_object().get("foo").unwrap().as_string().unwrap();
println!("{}", foo);
}
错误:
src/main.rs:8:23: 8:67 error: the type of this value must be known in this context
src/main.rs:8 let foo: String = json::decode(&json_str).unwrap().as_object().get("foo").unwrap().as_string().unwrap();
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
我认为至少错误是指向错误的位置?
答案 0 :(得分:3)
如果您想获得Json
,则无法使用json::decode
,因为Json
未实现Decodable
。
但您可以执行以下操作:
extern crate rustc_serialize;
use rustc_serialize::json::Json;
fn main() {
let json_str = "{\"foo\": \"bar\"}";
let json = Json::from_str(&json_str).unwrap();
let foo = json.as_object().unwrap().get("foo").unwrap().as_string().unwrap();
println!("{}", foo);
}