1c5f01b2fSopenharmony_ci#include <iostream> 2c5f01b2fSopenharmony_ci#include <nlohmann/json.hpp> 3c5f01b2fSopenharmony_ci 4c5f01b2fSopenharmony_ciusing json = nlohmann::json; 5c5f01b2fSopenharmony_ci 6c5f01b2fSopenharmony_ciint main() 7c5f01b2fSopenharmony_ci{ 8c5f01b2fSopenharmony_ci // an invalid JSON text 9c5f01b2fSopenharmony_ci std::string text = R"( 10c5f01b2fSopenharmony_ci { 11c5f01b2fSopenharmony_ci "key": "value without closing quotes 12c5f01b2fSopenharmony_ci } 13c5f01b2fSopenharmony_ci )"; 14c5f01b2fSopenharmony_ci 15c5f01b2fSopenharmony_ci // parse with exceptions 16c5f01b2fSopenharmony_ci try 17c5f01b2fSopenharmony_ci { 18c5f01b2fSopenharmony_ci json j = json::parse(text); 19c5f01b2fSopenharmony_ci } 20c5f01b2fSopenharmony_ci catch (json::parse_error& e) 21c5f01b2fSopenharmony_ci { 22c5f01b2fSopenharmony_ci std::cout << e.what() << std::endl; 23c5f01b2fSopenharmony_ci } 24c5f01b2fSopenharmony_ci 25c5f01b2fSopenharmony_ci // parse without exceptions 26c5f01b2fSopenharmony_ci json j = json::parse(text, nullptr, false); 27c5f01b2fSopenharmony_ci 28c5f01b2fSopenharmony_ci if (j.is_discarded()) 29c5f01b2fSopenharmony_ci { 30c5f01b2fSopenharmony_ci std::cout << "the input is invalid JSON" << std::endl; 31c5f01b2fSopenharmony_ci } 32c5f01b2fSopenharmony_ci else 33c5f01b2fSopenharmony_ci { 34c5f01b2fSopenharmony_ci std::cout << "the input is valid JSON: " << j << std::endl; 35c5f01b2fSopenharmony_ci } 36c5f01b2fSopenharmony_ci} 37