mirror of
https://github.com/nlohmann/json.git
synced 2024-07-15 19:05:46 +02:00
* mkdocs: add string_view examples * mkdocs: reference underlying operators * mkdocs: add operator<=> examples * mkdocs: fix style check issues * mkdocs: tweak BJData page * mkdocs: add CMake option hints to macros * mkdocs: fix JSON_DISABLE_ENUM_SERIALIZATION definition * mkdocs: fix link to unit-udt.cpp * mkdocs: fix "Arbitrary Type Conversions" title * mkdocs: link to api/macros/*.md instead of features/macros.md * mkdocs: document JSON_DisableEnumSerialization CMake option * mkdocs: encode required C++ standard in example files * docset: detect gsed/sed * docset: update index * docset: fix CSS patching * docset: add list_missing_pages make target * docset: add list_removed_paths make target * docset: replace page titles with name from index * docset: add install target for Zeal docset browser * Use GCC_TOOL in ci_test_documentation target
51 lines
1.1 KiB
C++
51 lines
1.1 KiB
C++
#include <iostream>
|
|
#include <string_view>
|
|
#include <nlohmann/json.hpp>
|
|
|
|
using namespace std::string_view_literals;
|
|
using json = nlohmann::json;
|
|
|
|
int main()
|
|
{
|
|
// create JSON object
|
|
json object =
|
|
{
|
|
{"the good", "il buono"},
|
|
{"the bad", "il cattivo"},
|
|
{"the ugly", "il brutto"}
|
|
};
|
|
|
|
// output element with key "the ugly" using string_view
|
|
std::cout << object.at("the ugly"sv) << '\n';
|
|
|
|
// change element with key "the bad" using string_view
|
|
object.at("the bad"sv) = "il cattivo";
|
|
|
|
// output changed array
|
|
std::cout << object << '\n';
|
|
|
|
|
|
// exception type_error.304
|
|
try
|
|
{
|
|
// use at() with string_view on a non-object type
|
|
json str = "I am a string";
|
|
str.at("the good"sv) = "Another string";
|
|
}
|
|
catch (json::type_error& e)
|
|
{
|
|
std::cout << e.what() << '\n';
|
|
}
|
|
|
|
// exception out_of_range.401
|
|
try
|
|
{
|
|
// try to write at a nonexisting key using string_view
|
|
object.at("the fast"sv) = "il rapido";
|
|
}
|
|
catch (json::out_of_range& e)
|
|
{
|
|
std::cout << e.what() << '\n';
|
|
}
|
|
}
|