[[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" }]
```