1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
|
### jsoncons::jsonpointer::remove
Removes a `json` element.
```cpp
#include <jsoncons_ext/jsonpointer/jsonpointer.hpp>
template <typename Json>
void remove(Json& target,
const basic_json_pointer<Json::char_type>& location); (1)
template <typename Json>
void remove(Json& target,
const basic_json_pointer<Json::char_type>& location,
std::error_code& ec); (2)
template <typename Json,typename StringSource>
void remove(Json& target,
const StringSource& location_str); (3)
template <typename Json,typename StringSource>
void remove(Json& target,
const StringSource& location_str,
std::error_code& ec); (4)
```
Removes the value at the location specifed by `location`.
#### Parameters
<table>
<tr>
<td>target</td>
<td>JSON value</td>
</tr>
<tr>
<td>location</td>
<td>A <a href="basic_json_pointer.md">basic_json_pointer</a></td>
</tr>
<tr>
<td>location_str</td>
<td>A JSON Pointer provided as a string, string view, or C-string</td>
</tr>
<tr>
<td><code>ec</code></td>
<td>out-parameter for reporting errors in the non-throwing overload</td>
</tr>
</table>
#### Return value
None
### Exceptions
(1) Throws a [jsonpointer_error](jsonpointer_error.md) if `remove` fails.
(2) Sets the out-parameter `ec` to the [jsonpointer_error_category](jsonpointer_errc.md) if `remove` fails.
### Examples
#### Remove an object member
```cpp
#include <jsoncons/json.hpp>
#include <jsoncons_ext/jsonpointer/jsonpointer.hpp>
namespace jsonpointer = jsoncons::jsonpointer;
int main()
{
auto target = json::parse(R"(
{ "foo": "bar", "baz" : "qux"}
)");
std::error_code ec;
jsonpointer::remove(target, "/baz", ec);
if (ec)
{
std::cout << ec.message() << '\n';
}
else
{
std::cout << target << '\n';
}
}
```
Output:
```json
{"foo":"bar"}
```
#### Remove an array element
```cpp
#include <jsoncons/json.hpp>
#include <jsoncons_ext/jsonpointer/jsonpointer.hpp>
using jsoncons::json;
namespace jsonpointer = jsoncons::jsonpointer;
int main()
{
auto target = json::parse(R"(
{ "foo": [ "bar", "qux", "baz" ] }
)");
std::error_code ec;
jsonpointer::remove(target, "/foo/1", ec);
if (ec)
{
std::cout << ec.message() << '\n';
}
else
{
std::cout << target << '\n';
}
}
```
Output:
```json
{"foo":["bar","baz"]}
```
|