Cómo parsear correctamente JSON desde un archivo en Rust con serde
¡Hola a todos! Acabo de empezar a aprender Rust y me encontré con una tarea típica: necesito leer un archivo JSON y convertirlo en una estructura de datos. Tengo un archivo `config.json` más o menos con este contenido:
```json
{
"name": "MyApp",
"version": 1,
"debug": true,
"dependencies": ["serde", "tokio"]
}
```
He agregado los crates `serde` y `serde_json` en `Cargo.toml`, escribí la estructura, pero no puedo entender cómo leer correctamente el archivo y parsearlo. Probé así:
```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);
}
```
El código funciona, pero he leído que no es lo más idiomático.