nanojson 0.5.0

A #![no_std], allocation-free, zero-dependency JSON serializer and pull-parser.
Documentation
use nanojson::{Deserialize, Serialize};

#[derive(Serialize, Deserialize, Debug)]
struct MyStruct {
    #[nanojson(default)]
    num: i32,
    #[nanojson(default)]
    name: String,
}

fn main() {
    // Parse a JSON string into a struct
    let json = r#"{}"#;
    let my_struct = nanojson::parse::<MyStruct>(json);

    if let Err(ref e) = my_struct { e.print(json); }
    if let Ok(mut my_struct) = my_struct {
        println!("Parsed: {:?}", my_struct);

        // Change the fields and turn back into a JSON string again
        my_struct.num = 420;
        my_struct.name = "world".to_string();
        if let Ok(json) = nanojson::stringify(&my_struct) {
            println!("JSON: {}", json);
        }
    }
}

#[cfg(test)] #[test] fn test_main() { main() }