[[serde]]と[[serde_json]]を使う。 ## 依存関係インストール ```toml:Cargo.toml [dependencies] serde = { version = "1.0.126", features = ["derive"] } serde_json = "1.0.64" ``` ## メインコード ```rust:main.rs use serde::{Deserialize, Serialize}; use std::fs::File; use std::path::Path; #[derive(Serialize, Deserialize, Debug)] struct User { id: i64, name: String, } #[derive(Serialize, Deserialize, Debug)] struct Root { users: Vec<User>, } fn main() { let f = File::open(Path::new("users.json")).unwrap(); let r: Root = serde_json::from_reader(f).unwrap(); println!("{:?}", r); } ``` ## JSONファイル ```json { "users": [ {"id": 1, "name": "User1"}, {"id": 2, "name": "User2"}, {"id": 3, "name": "User3"} ] } ``` ## 実行結果 ```console $ cargo run Finished dev [unoptimized + debuginfo] target(s) in 0.02s Running `target\debug\rust-serde.exe` Root { users: [User { id: 1, name: "User1" }, User { id: 2, name: "User2" }, User { id: 3, name: "User3" }] ```