// Created on savesnippets.com ยท https://savesnippets.com/OWhRfs1jHzFU01 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 } }