Avatar ·

如何使用 serde 在 Rust 中正确解析 JSON 文件?

大家好!我刚开始学习 Rust,遇到了一个典型任务:需要读取 JSON 文件并将其转换为数据结构。我有一个 `config.json` 文件,内容大致如下: ```json { "name": "MyApp", "version": 1, "debug": true, "dependencies": ["serde", "tokio"] } ``` 我在 `Cargo.toml` 中添加了 `serde` 和 `serde_json` crate,编写了结构体,但不知道如何正确读取文件并解析它。我尝试了以下代码: ```rust use serde::Deserialize; use std::fs::File; use std::io::Read; #[derive(Deserialize)] struct Config { name: String, version: u32, debug: bool, dependencies: Vec, } fn main() { let mut file = File::open("config.json").unwrap(); let mut data = String::new(); file.read_to_string(&mut data).unwrap(); let config: Config = serde_json::from_str(&data).unwrap(); println!("{}", config.name); } ``` 代码能运行,但我听说这不是最惯用的方式。