我正在尝试从Web API(规范)反序列化Spotify元数据JSON .我正在使用hyper来从服务器和serde中检索JSON,以将JSON转换为我可以在Rust中实际使用的东西.从服务器检索JSON很好,但是当我尝试将JSON转换为可以使用的对象时,可以使用Rust panicks并抛出错误:
thread '<main>' panicked at 'called 'Result::unwrap()' on an 'Err' value: SyntaxError("expected value", 11, 21)', ../src/libcore/result.rs:746
Run Code Online (Sandbox Code Playgroud)
这在最小的方面没有帮助,因为它根本不表示出错的地方.在搜索网络时,我偶然发现了一个serde问题,这让我认为问题与JSON的嵌套结构有关.
任何人都可以看到出错的地方?修复错误对我来说是最好的解决方案,但如果另一个箱子是一个更好的解决方案,我也想听到.我已经尝试过rustc-serialize,但是crate无法处理json中的'type'变量.
我使用的代码是:
#![feature(custom_derive, plugin)]
#![plugin(serde_macros)]
#![feature(custom_attribute)]
extern crate hyper;
extern crate serde;
extern crate serde_json;
use std::io::Read;
use hyper::Client;
use hyper::header::Connection;
#[derive(Serialize, Deserialize)]
struct Track_Full {
album: Album_Simp,
artists: Vec<Artist_Simp>,
available_markets: Vec<String>,
disc_number: u8,
duration_ms: u32,
explicit: bool,
external_ids: External_IDs,
external_urls: External_URLs,
href: String,
id: String,
name: String,
popularity: u8,
preview_url: String,
track_number: u8,
#[serde(rename="type")]
_type: …Run Code Online (Sandbox Code Playgroud)