#serde-json #create #traversal #boilerplate #style #macro #js-ts

serde_json_traversal

A macro that creates the boilerplate to traverse JSON (js/ts style)

2 unstable releases

0.2.0 Aug 12, 2021
0.1.0 Aug 16, 2020

#1005 in Encoding

Download history 67/week @ 2024-01-01 183/week @ 2024-01-08 432/week @ 2024-01-15 467/week @ 2024-01-22 36/week @ 2024-01-29 6/week @ 2024-02-05 21/week @ 2024-02-12 29/week @ 2024-02-19 47/week @ 2024-02-26 59/week @ 2024-03-04 69/week @ 2024-03-11 343/week @ 2024-03-18 208/week @ 2024-03-25 76/week @ 2024-04-01 372/week @ 2024-04-08 250/week @ 2024-04-15

907 downloads per month

MIT/Apache

7KB

Synopsis

use serde_json_traversal::serde_json_traversal;

#[test]
fn success() {
    let json_obj = serde_json::json!({
        "foo": "bar",
        "bar": [
            "foo",
            "baz",
        ],
        "baz": {
            "foo": [
                "bar",
                {
                    "bar": "baz",
                },
            ],
        },
    });

   assert_eq!(serde_json_traversal!(json_obj => foo).unwrap(), "bar");
   assert_eq!(serde_json_traversal!(json_obj => bar => [0]).unwrap(), "foo");
   assert_eq!(serde_json_traversal!(json_obj => baz => foo => [0]).unwrap(), "bar");
   assert_eq!(serde_json_traversal!(json_obj => baz => foo => [1] => bar).unwrap(), "baz");

   let json_arr = serde_json::json!([
        "foo",
        {
            "bar": "baz",
        }
   ]);

   assert_eq!(serde_json_traversal!(json_arr => [0]).unwrap(), "foo");
   assert_eq!(serde_json_traversal!(json_arr => [1] => bar).unwrap(), "baz");
}

No runtime deps