A struct with a std::string_view member defined via NLOHMANN_DEFINE_TYPE_* decodes from a json_view without a copy: the member points into the source text, or, for a string with escape sequences, into the buffer of decoded strings of the document. It is valid while the document is alive and, for a document that borrows its text, while that text is. The feature page now says so, including that the same struct compiles with json::parse(text).get<T>() and then points into the temporary json value. The new test checks where plain and escaped members point and that they stay readable while the document and a borrowed source text are alive. It does not read dangling memory. Signed-off-by: Niels Lohmann <mail@nlohmann.me>
Documentation
Generate documentation
Note on documentation: The source files contain links to the online documentation at https://json.nlohmann.me.
This URL provides the most recent documentation and also applies to previous versions. Documentation for deprecated
functions is not removed; instead, it is marked as deprecated.
If you want to view the documentation for a specific tag or commit hash, you can generate it locally as follows (example
using tag v3.12.0):
git clone https://github.com/nlohmann/json.git
cd json
git checkout v3.12.0
make install_venv serve -C docs/mkdocs
Open http://127.0.0.1:8000/ in your browser. Replace any URL in the source code that points to
https://json.nlohmann.me with http://127.0.0.1:8000 to view the documentation for the selected tag or commit hash.