6 releases

0.2.2 May 21, 2022
0.2.1 May 20, 2022
0.1.2 May 19, 2022

#2036 in Encoding

GPL-3.0-only

15KB
60 lines

easy_json_serde

Dead-simple JSON serialization / deserialization

easy_json_serde works in conjunction with serde. Decorate your structs with serde's Serialize and Deserialize, bring easy_json_serde's EasyJsonSerialize and EasyJsonDeserialize into view, and easily serialize / deserialize to and from JSON.

use std::fs::File;

use easy_json_serde::{EasyJsonDeserialize, EasyJsonSerialize};
use serde::{Deserialize, Serialize};

#[derive(Serialize, Deserialize)]
struct Dog {
    name: String,
    age: u8,
}

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let rufus_original = Dog {
        name: "Rufus".to_string(),
        age: 10,
    };

    let file_name = "dog.json";
    File::save(file_name, &rufus_original, 4)?;

    let mut json_file = File::open(file_name)?;
    let _rufus_deserialized: Dog = Dog::load(&mut json_file)?;

    Ok(())
}

Dependencies

~0.5–1MB
~20K SLoC