### jsoncons::jsonpath::jsonpath_expression

```cpp
#include <jsoncons_ext/jsonpath/jsonpath.hpp>

template <typename Json>
class jsonpath_expression
```

#### Member functions

     evaluate
     Select values from a JSON document 

     select (since 0.172.0)
     Select values from a JSON document 

     select_paths (since 0.172.0)
     Select paths of values selected from a JSON document 

     update (since 0.172.0)
     Update a JSON document in place 

```cpp
template <typename BinaryOp>
void update(const_reference root, BinaryOp op);                                   (1) (since 0.172.0)
```

(1) Evaluates the root value against the compiled JSONPath expression and calls a provided
callback repeatedly with the results.

#### Parameters

     root
     Root JSON value 

     op
     A function object that accepts a path and a reference to a Json value. 
It must have function call signature equivalent to

void fun(const basic_path_node<Json::char_type>& path, Json& val);

#### Non-member functions

     make_expression
     Returns a `jsonpath_expression` for later evaluation. (since 0.161.0) 

