1use zjson::{any::Any, document::Document};
2
3fn main() {
4 let json = r#"{
5 "one": 1,
6 "array": [true, false, null],
7 "object": {"pi": 3.14, "exp": 1e5, "ignore": "this"}
8 }"#;
9
10 let mut document = Document::new(json);
11
12 let mut root = document
14 .next()
15 .expect("failed to parse document")
16 .and_then(Any::object)
17 .expect("failed to get an object from the document");
18
19 let element = root.next().expect("failed to parse object");
21 let Some((key, Any::Number(mut one))) = element else {
22 panic!("failed to get a number from the object");
23 };
24 let one = one.get().expect("failed to parse number");
25
26 assert_eq!(key, "one");
27 assert_eq!(one.as_u8(), Some(1));
28
29 let element = root.next().expect("failed to parse object");
31 let Some((key, Any::Array(mut array))) = element else {
32 panic!("failed to get an array from the object");
33 };
34
35 assert_eq!(key, "array");
36
37 let mut r#true = array
39 .next()
40 .expect("failed to parse array")
41 .and_then(Any::literal)
42 .expect("failed to get a true value from the array");
43
44 println!("{true:#?}");
46
47 let r#true = r#true.get().expect("failed to parse a true value");
48 assert_eq!(r#true, true);
49
50 array.finish().expect("failed to parse array");
52
53 root.finish().expect("failed to parse object");
55
56 document.finish().expect("failed to parse document");
58}
59
60#[test]
62fn test() {
63 main();
64}