Derive the ToJson
and FromJson
for rust_json.
#[derive(ToJson)]
```rust use rustjson::ToJson; use rustjson_derive::ToJson;
struct Simple { n: f64, #[rename = "sim.b"] b: bool, }
struct Nest {
a: Vec
enum Enum { #[rename = "u"] Unit, One(i32), Two(i32, i32), Cmpx { a: i32, b: i32, #[rename = "z"] c: i32, }, }
fn main() { let s = Simple { n: 12.3, b: true }; println!("{}", s.to_json());
let n = Nest {
a: vec![1.2, 2.3],
s: s,
};
println!("{}", n.to_json());
let u = E::Unit;
let o = E::One(1);
let t = E::Two(1, 2);
let c = E::Cmpx { a: 1, b: 2, c: 3 };
println!("{}", u.to_json());
println!("{}", o.to_json());
println!("{}", t.to_json());
println!("{}", c.to_json());
} ```
#[derive(FromJson)]
```rust use rustjson::jsonparse; use rustjsonderive::FromJson;
struct Simple { n: f64, #[rename = "sim.b"] b: bool, }
struct Nest {
a: Vec
enum Enum { #[rename = "u"] Unit, One(i32), Two(i32, i32), Cmpx { a: i32, b: i32, #[rename = "z"] c: i32, }, }
fn main() {
println!("{:?}", json_parse(r#"{"n": 12.3, "sim.b": true}"#).get::
println!("{:?}", json_parse(r#"
{
"a": [1.2, 2.3],
"s": {"n": 12.3, "b": true}
}
"#).get::<Nest>());
println!("{:?}", json_parse(r#""u""#).get::<Enum>());
println!("{:?}", json_parse(r#"{"One": 1}"#).get::<Enum>());
println!("{:?}", json_parse(r#"
{
"Two": [1, 2]
}
"#).get::<Enum>());
println!("{:?}", json_parse(r#"
{
"Cmpx": {"a": 1, "b": 2, "z": 3}
}
"#).get::<Enum>());
} ```