-
JSON ライブラリを使用する方法: C++には、JSONを扱うためのさまざまなライブラリが存在します。例えば、RapidJSONやnlohmann/jsonなどがあります。これらのライブラリを使用すると、JSONデータを簡単に解析したり、生成したりすることができます。
以下は、RapidJSONを使用してJSONを解析する例です:
#include <rapidjson/document.h> #include <rapidjson/writer.h> #include <rapidjson/stringbuffer.h> #include <iostream> int main() { const char* json = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}"; rapidjson::Document document; document.Parse(json); if (document.HasParseError()) { std::cout << "JSONの解析エラー: " << document.GetParseError() << std::endl; return 1; } std::string name = document["name"].GetString(); int age = document["age"].GetInt(); std::string city = document["city"].GetString(); std::cout << "名前: " << name << std::endl; std::cout << "年齢: " << age << std::endl; std::cout << "都市: " << city << std::endl; return 0; }
-
C++の標準ライブラリを使用する方法: C++の標準ライブラリには、JSONを扱うための機能が追加される予定です。C++17以降では、std::anyやstd::variantを使用して、JSONのプロパティを表現することができます。ただし、まだ標準化されていないため、利用できる環境に制約があります。
以下は、C++17以降を使用してJSONを扱う例です:
#include <iostream> #include <any> #include <string> #include <unordered_map> int main() { std::unordered_map<std::string, std::any> json; json["name"] = std::string("John"); json["age"] = 30; json["city"] = std::string("New York"); std::string name = std::any_cast<std::string>(json["name"]); int age = std::any_cast<int>(json["age"]); std::string city = std::any_cast<std::string>(json["city"]); std::cout << "名前: " << name << std::endl; std::cout << "年齢: " << age << std::endl; std::cout << "都市: " << city << std::endl; return 0; }