MCPcopy Create free account
hub / github.com/danielaparker/jsoncons / let_example

Function let_example

examples/src/jmespath_examples.cpp:71–100  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

69}
70
71void let_example()
72{
73 auto doc = json::parse(R"(
74[
75 {"home_state": "WA",
76 "states": [
77 {"name": "WA", "cities": ["Seattle", "Bellevue", "Olympia"]},
78 {"name": "CA", "cities": ["Los Angeles", "San Francisco"]},
79 {"name": "NY", "cities": ["New York City", "Albany"]}
80 ]
81 },
82 {"home_state": "NY",
83 "states": [
84 {"name": "WA", "cities": ["Seattle", "Bellevue", "Olympia"]},
85 {"name": "CA", "cities": ["Los Angeles", "San Francisco"]},
86 {"name": "NY", "cities": ["New York City", "Albany"]}
87 ]
88 }
89]
90 )");
91
92 std::string query = R"([*].[let $home_state = home_state in states[? name == $home_state].cities[]][])";
93 auto expr = jmespath::make_expression<json>(query);
94
95 json result = expr.evaluate(doc);
96
97 auto options = jsoncons::json_options{}
98 .array_array_line_splits(jsoncons::line_split_kind::same_line);
99 std::cout << pretty_print(result, options) << "\n";
100}
101
102void expression_with_params_example() // since 1.3.0
103{

Callers 1

mainFunction · 0.85

Calls 4

parseFunction · 0.85
pretty_printFunction · 0.85
evaluateMethod · 0.45

Tested by

no test coverage detected