# nlohmann::basic_json::get_to ``` template ValueType& get_to(ValueType& v) const noexcept( noexcept(JSONSerializer::from_json( std::declval(), 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` `from_json()` method. The function is equivalent to executing ``` ValueType v; JSONSerializer::from_json(*this, v); ``` This overload is chosen if: - `ValueType` is not `basic_json`, - `json_serializer` 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` `from_json()` method throws ## Complexity Depends on the `json_serializer::from_json()` implementation. ## Examples 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 `std::vector`, (3) A JSON object can be converted to C++ associative containers such as `#cpp std::unordered_map`. ``` #include #include #include using json = nlohmann::json; int main() { // create a JSON value with different types json json_types = { {"boolean", true}, { "number", { {"integer", 42}, {"floating-point", 17.23} } }, {"string", "Hello, world!"}, {"array", {1, 2, 3, 4, 5}}, {"null", nullptr} }; bool v1; int v2; short v3; float v4; int v5; std::string v6; std::vector v7; std::unordered_map v8; // use explicit conversions json_types["boolean"].get_to(v1); json_types["number"]["integer"].get_to(v2); json_types["number"]["integer"].get_to(v3); json_types["number"]["floating-point"].get_to(v4); json_types["number"]["floating-point"].get_to(v5); json_types["string"].get_to(v6); json_types["array"].get_to(v7); json_types.get_to(v8); // print the conversion results std::cout << v1 << '\n'; std::cout << v2 << ' ' << v3 << '\n'; std::cout << v4 << ' ' << v5 << '\n'; std::cout << v6 << '\n'; for (auto i : v7) { std::cout << i << ' '; } std::cout << "\n\n"; for (auto i : v8) { std::cout << i.first << ": " << i.second << '\n'; } } ``` Output: ``` 1 42 42 17.23 17 Hello, world! 1 2 3 4 5 string: "Hello, world!" number: {"floating-point":17.23,"integer":42} null: null boolean: true array: [1,2,3,4,5] ``` ## See also - [get](https://json.nlohmann.me/api/basic_json/get/index.md) get a value (explicit conversion) - [get_ref](https://json.nlohmann.me/api/basic_json/get_ref/index.md) get a reference to the stored value - [get_ptr](https://json.nlohmann.me/api/basic_json/get_ptr/index.md) get a pointer to the stored value - [Converting values](https://json.nlohmann.me/features/conversions/index.md) - the type conversions article ## Version history - Since version 3.3.0.