use serde_json::{json, Value};
fn main() {
// Build untyped JSON inline with the json! macro
let data = json!({
"name": "Alice",
"age": 30,
"roles": ["admin", "editor"],
"address": { "city": "Austin" }
});
// Read fields by key / index
println!("{}", data["name"]); // "Alice"
println!("{}", data["roles"][0]); // "admin"
println!("{}", data["address"]["city"]); // "Austin"
println!("{:?}", data.get("missing")); // None
// Convert with as_*
if let Some(age) = data["age"].as_u64() {
println!("age = {age}");
}
// Parse text into Value, then navigate
let raw = r#"{"a": {"b": [1, 2, 3]}}"#;
let v: Value = serde_json::from_str(raw).unwrap();
if let Some(arr) = v["a"]["b"].as_array() {
let sum: u64 = arr.iter().filter_map(|x| x.as_u64()).sum();
println!("sum = {sum}"); // 6
}
}
Create a free account and build your private vault. Share publicly whenever you want.