Skip to main content

parse/
parse.rs

1use erjson::{JSONDocument, JSONValue};
2
3fn main() {
4    let data = r#"{
5    "name": "John Doe",
6    "age": 43,
7    "props": { "weight": 76, "height": 2.3 },
8    "primes": [ 11, 13, 17, 19, 23 ],
9    "colors": [ "red", "blue" ]
10  }"#;
11
12    let json = String::from(data);
13    let mut doc = JSONDocument::new();
14    match doc.parse_string(json) {
15        Ok(ref mut v) => {
16            println!("name: {}", v.get("name").unwrap()); // John Doe
17            println!("age: {}", v.get("age").unwrap()); // 43
18            match v {
19                JSONValue::Object(hm) => {
20                    *hm.get_mut("age").unwrap() = JSONValue::Number(45f64);
21                }
22                _ => {}
23            };
24            println!("age: {}", v.get("age").unwrap()); // 45
25        }
26        Err(err) => print!("err: {}", err),
27    }
28}