forked from Research/WhisperCom
59 lines
1.5 KiB
Markdown
59 lines
1.5 KiB
Markdown
|
# basic_json::get_to
|
||
|
|
||
|
```cpp
|
||
|
template<typename ValueType>
|
||
|
ValueType& get_to(ValueType& v) const noexcept(
|
||
|
noexcept(JSONSerializer<ValueType>::from_json(
|
||
|
std::declval<const basic_json_t&>(), v)))
|
||
|
```
|
||
|
|
||
|
Explicit type conversion between the JSON value and a compatible value. The value is filled into the input parameter by
|
||
|
calling the `json_serializer<ValueType>` `from_json()` method.
|
||
|
|
||
|
The function is equivalent to executing
|
||
|
```cpp
|
||
|
ValueType v;
|
||
|
JSONSerializer<ValueType>::from_json(*this, v);
|
||
|
```
|
||
|
|
||
|
This overloads is chosen if:
|
||
|
|
||
|
- `ValueType` is not `basic_json`,
|
||
|
- `json_serializer<ValueType>` has a `from_json()` method of the form `void from_json(const basic_json&, ValueType&)`
|
||
|
|
||
|
## Template parameters
|
||
|
|
||
|
`ValueType`
|
||
|
: the value type to return
|
||
|
|
||
|
## Return value
|
||
|
|
||
|
the input parameter, allowing chaining calls
|
||
|
|
||
|
## Exceptions
|
||
|
|
||
|
Depends on what `json_serializer<ValueType>` `from_json()` method throws
|
||
|
|
||
|
## Example
|
||
|
|
||
|
??? example
|
||
|
|
||
|
The example below shows several conversions from JSON values to other types. There a few things to note: (1)
|
||
|
Floating-point numbers can be converted to integers, (2) A JSON array can be converted to a standard
|
||
|
`#!cpp std::vector<short>`, (3) A JSON object can be converted to C++ associative containers such as
|
||
|
`#cpp std::unordered_map<std::string, json>`.
|
||
|
|
||
|
```cpp
|
||
|
--8<-- "examples/get_to.cpp"
|
||
|
```
|
||
|
|
||
|
Output:
|
||
|
|
||
|
```json
|
||
|
--8<-- "examples/get_to.output"
|
||
|
```
|
||
|
|
||
|
## Version history
|
||
|
|
||
|
- Since version 3.3.0.
|