#json-path #template #age #string

jpst

a simple string template engine that supports JSON Path

2 releases

0.1.1 Jul 22, 2022
0.1.0 Jul 21, 2022

#446 in Template engine

Download history 25/week @ 2023-12-14 24/week @ 2023-12-21 20/week @ 2023-12-28 15/week @ 2024-01-04 14/week @ 2024-01-11 3/week @ 2024-01-18 27/week @ 2024-01-25 38/week @ 2024-02-01 3/week @ 2024-02-08 33/week @ 2024-02-15 60/week @ 2024-02-22 54/week @ 2024-02-29 86/week @ 2024-03-07 85/week @ 2024-03-14 87/week @ 2024-03-21 60/week @ 2024-03-28

326 downloads per month

Custom license

11KB
278 lines

JPST

A simple string template engine that supports JSON Path


    let json_value = json!({
        "my": {
            "name": "alice",
            "age": 18,
        },
        "friends": [
            {
                "name": "bob",
                "age": 18,
            },
            {
                "name": "tom",
                "age": 20,
            },
        ],
    });

    assert_eq!(
        "Hello, alice!".to_string(),
        format_str!("Hello, {{$.my.name}}!", &json_value)
    );

    assert_eq!(
        "Hello, bob!".to_string(),
        format_str!("Hello, {{$.friends[0].name}}!", &json_value)
    );

    assert_eq!(
        "Hello, tom!".to_string(),
        format_str!("Hello, {{$.friends[-1].name}}!", &json_value)
    );

    assert_eq!(
        "Hello, tom!".to_string(),
        format_str!("Hello, {{$.friends[?(@.age > 18)].name}}!", &json_value)
    );

Dependencies

~3.5–5.5MB
~102K SLoC