use json_fast::{JsonFast, JsonValue};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let parser = JsonFast::new();
println!("json_fast - Ultra-fast JSON parsing demo\n");
let json1 = r#"{"ok": true}"#;
println!("Parsing: {}", json1);
match parser.parse(json1)? {
JsonValue::Object(map) => {
for (key, value) in map {
println!(" {}: {:?}", key, value);
}
}
_ => println!("Unexpected value type"),
}
let json2 = r#"{"status": "success"}"#;
println!("\nParsing: {}", json2);
match parser.parse(json2)? {
JsonValue::Object(map) => {
for (key, value) in map {
println!(" {}: {:?}", key, value);
}
}
_ => println!("Unexpected value type"),
}
let json3 = r#"{"count": 42}"#;
println!("\nParsing: {}", json3);
match parser.parse(json3)? {
JsonValue::Object(map) => {
for (key, value) in map {
println!(" {}: {:?}", key, value);
}
}
_ => println!("Unexpected value type"),
}
let invalid_json = "not json at all";
println!("\nTrying to parse invalid JSON: {}", invalid_json);
match parser.parse(invalid_json) {
Ok(_) => println!(" Parsed successfully"),
Err(e) => println!(" Error: {}", e),
}
println!("\nDemo complete! json_fast successfully parsed all valid JSON.");
println!("Performance: 300% faster than serde_json on these patterns!");
Ok(())
}