2017-08-03 14 views
0

JSON仕様によれば、JSONドキュメントのルートはオブジェクトまたは配列のいずれかになります。最初のケースは容易structserde_jsonを使用したJSONルート配列の逆シリアル化

#[derive(Deserialize)] 
struct Person { 
    first_name: String, 
    last_name: String, 
} 

fn main() { 
    let s = r#"[{"first_name": "John", "last_name": "Doe"}]"#; 

    // this will break because we have a top-level array 
    let p: Person = serde_json::from_str(s).unwrap(); 
    println!("Name: {} {}", p.first_name, p.last_name); 
} 

しかし、私はstruct Sの(名前)アレイをデシリアライズする方法上の任意のドキュメントを見つけることができない使用serde_jsonによってデシリアライズされます。

+2

あなたが何をしようとしたのですか?結果は何でしたか? –

答えて

1

私達はちょうどそのタイプのベクトルであることを、結果を宣言する必要があります。

let p: Vec<Person> = serde_json::from_str(s).unwrap(); 
println!("Name: {} {}", p[0].first_name, p[0].last_name); 
関連する問題