facet-json is the JSON serializer and deserializer for the facet ecosystem. It
reads and writes JSON for any type that derives Facet — no manual Serialize
or Deserialize implementations, no attribute-heavy schemas.
use facet::Facet;
use facet_json::{from_str, to_string};
#[derive(Facet, Debug, PartialEq)]
struct Person {
name: String,
age: u32,
}
let json = r#"{"name":"Alice","age":30}"#;
let person: Person = from_str(json).unwrap();
assert_eq!(person.name, "Alice");
assert_eq!(person.age, 30);
let out = to_string(&person).unwrap();
println!("{out}");The primary entry points are [from_str] and [to_string] for the common case,
with [from_slice] / [to_vec] for byte-oriented callers and
[to_string_pretty] for human-readable output. Zero-copy deserialization of
&str fields is available via [from_str_borrowed].
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.