| 69 | } |
| 70 | |
| 71 | void 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 | |
| 102 | void expression_with_params_example() // since 1.3.0 |
| 103 | { |
no test coverage detected