Hi,
I am very new to Rust and basically from JavaScript background.
I have a problem below where i want to print "name" of each contact in the object deep down the hierarchy.
The contact object as in JavaScript may not be having exact same number of fields every time to make a suitable Structure.
Could you please help how to achieve this in Rust.
Thanks in Advance!
extern crate serde_json;
use serde_json::{Value, Error};
use std::collections::HashMap;
fn untyped_example() -> Result<(), Error> {
// Some JSON input data as a &str. Maybe this comes from the user.
let data = r#"{
"name": "John Doe",
"age": 43,
"phones": [
"+44 1234567",
"+44 2345678"
],
"contact": {
"name": "Stefan",
"age": 23,
"optionalfield": "dummy field",
"phones": [
"12123",
"345346"
],
"contact": {
"name": "James",
"age": 34,
"phones": [
"23425",
"98734"
]
}
}
}"#;
let mut d:HashMap<String, Value> = serde_json::from_str(&data)?;
for (str, val) in d {
println!("{}", str);
if str == "contact" {
d = serde_json::from_value(val)?;
}
}
Ok(())
}
fn main() {
untyped_example().unwrap();
}