json rust deserialization serde

¿Cómo puedo deserializar JSON con una matriz de nivel superior usando Serde?



rust deserialization (1)

Puedes usar un Vec :

extern crate serde; extern crate serde_json; #[macro_use] extern crate serde_derive; use serde_json::Error; #[derive(Serialize, Deserialize, Debug)] struct Foo { data: String, } fn typed_example() -> Result<(), Error> { let data = r#"[ { "data": "value1" }, { "data": "value2" }, { "data": "value3" } ]"#; let array: Vec<Foo> = serde_json::from_str(data)?; for elem in array.iter() { println!("{:?}", elem); } Ok(()) } fn main() { typed_example().unwrap(); }

Tengo algunos datos JSON que se devuelven de un servicio web. El JSON es una matriz de nivel superior:

[ { "data": "value1" }, { "data": "value2" }, { "data": "value3" } ]

Al usar serde_derive para hacer struct , puedo deserializar los datos contenidos en la matriz, sin embargo, no puedo hacer que Serde deserialice la matriz de nivel superior.

¿Me estoy perdiendo algo o Serde no puede deserializar las matrices de nivel superior?