📝 clarified difference between serialization and string value retrieval #853

This commit is contained in:
Niels Lohmann 2017-12-06 21:42:36 +01:00
parent fa76f2efd7
commit 25d205c16d
No known key found for this signature in database
GPG Key ID: 7F3CEA63AE251B69

View File

@ -207,6 +207,29 @@ std::cout << j.dump(4) << std::endl;
// }
```
Note the difference between serialization and assignment:
```cpp
// store a string in a JSON value
json j_string = "this is a string";
// retrieve the string value (implicit JSON to std::string conversion)
std::string cpp_string = j_string;
// retrieve the string value (explicit JSON to std::string conversion)
auto cpp_string2 = j_string.get<std::string>();
// retrieve the serialized value (explicit JSON serialization)
std::string serialized_string = j_string.dump();
// output of original string
std::cout << cpp_string << " == " << cpp_string2 << " == " << j_string.get<std::string>() << '\n';
// output of serialized value
std::cout << j_string << " == " << serialized_string << std::endl;
```
`.dump()` always returns the serialized value, and `.get<std::string>()` returns the originally stored string value.
#### To/from streams (e.g. files, string streams)
You can also use streams to serialize and deserialize: