[−][src]Derive Macro serde_query::DeserializeQuery
#[derive(DeserializeQuery)] { // Attributes available to this derive: #[query] }
Derive macro for DeserializeQuery
trait.
Example
use serde_query::{DeserializeQuery, Query}; #[derive(DeserializeQuery)] struct Data { #[query(".commit.authors.[0]")] first_author: String, #[query(".hash")] hash_value: u64, } let document = serde_json::to_string(&serde_json::json!({ "commit": { "authors": ["Kou", "Kasumi", "Masaru"], "date": "2020-09-10", }, "hash": 0xabcd, }))?; // You can use `Query<T>` as a `Deserialize` type for any `Deserializer` // and convert the result to the desired type using `From`/`Into`. let data: Data = serde_json::from_str::<Query<Data>>(&document)?.into(); assert_eq!(data.first_author, "Kou"); assert_eq!(data.hash_value, 0xabcd);