6 releases

0.1.5 Sep 22, 2022
0.1.4 Sep 21, 2022

#1483 in Encoding

Download history 295/week @ 2023-12-11 387/week @ 2023-12-18 357/week @ 2023-12-25 201/week @ 2024-01-01 96/week @ 2024-01-08 54/week @ 2024-01-15 36/week @ 2024-01-22 38/week @ 2024-01-29 50/week @ 2024-02-05 25/week @ 2024-02-12 77/week @ 2024-02-19 169/week @ 2024-02-26 144/week @ 2024-03-04 72/week @ 2024-03-11 161/week @ 2024-03-18

561 downloads per month
Used in 2 crates

MIT license

28KB
704 lines

rust_json

Latest Version

JSON serializer and deserializer written for learning rust.

Feature

Parse json from string

use rust_json::json_parse;

fn example() {
    let j = json_parse(r#"
    {
        "S": [
            1, 
            2.3, 
            {
                "4": {
                    "5": {
                        "6": [
                            null,
                            true, 
                            false
                            ]
                        }
                    }
            }
        ]
    }"#);

    println!("{}", j["S"]);
}

Construct JsonElem with json literal

use rust_json::json;

fn example() {
    let j = json!(
        {
            "S": [
                1.2, 
                "2.3", 
                {
                    "4": {
                        "5": {
                            "6": [
                                null,
                                true, 
                                false
                                ]
                            }
                        }
                }
            ]
        }
    );

    println!("{}", j["S"]);
}

Construct JsonElem with js object literal style

use rust_json::js_object;

fn proc(n: i32) -> i32 {
    n * n + n / 2
}

fn main() {
    let a = true;
    let n = 32;
    let j = js_object!([
        {
            a // 属性的简洁表示 Property Shorthand
        },
        {
            // 使用表达式作为值 Using expression
            proc_n: if n % 2 == 0 { proc(n) + 1 } else { 0 }, 
            [n * 12]: n * 12 // 属性名表达式 Computed Property Names
        }
    ]);
    println!("{}", j);
}

ToJson and FromJson traits

Impl the ToJson and FromJson to serialize and deserialize custom struct. Or you can use rust_json_derive to derive the traits.

Stringify with space

use rust_json::json;

fn example() {
    let j = json!({"a": 12});
    println!("{:#}", j);
    // { 
    //     "a": 12
    // }
    println!("{:3}", j);
    // { 
    //    "a": 12
    // }
}

No runtime deps