RapidJsonはC++のJsonパーサーです。Tencentによるオープンソースとなっています。
GitHubのページにも書いてありますが、特徴としては
- RapidXmlにインスパイアを受けた
- その名(Rapid)の通り、速い
- メモリに優しい
- ヘッダーファイルのみ
特に一番最後のヘッダーファイルのみという点が特徴的です
RapidJSON is a header-only C++ library.
なので、導入がしやすいです。include指定のみでOKですから。
C++だとNuGetで取得できてもプロジェクトに依存ライブラリなどの指定する必要がありますが、これについては追加のインクルードファイルのみの指定ですみますから。
では、導入してみます。
NuGetでRapidJsonをインストールもしくは、パッケージマネージャーコンソールで以下のようにコマンドを入力します。
Install-Package RapidJson
プロジェクトのプロパティにて追加の依存インクルードディレクトリにて以下を指定します。
$(SolutionDir)packages\rapidjson.1.0.2\build\native\include\rapidjson
※1.0.2の部分は取得したバージョンによって修正してください。
軽く試すのであれば、リポジトリのREADME.mdのUsage At Glanceに書いてあるページを試すといいです。
// rapidjson/example/simpledom/simpledom.cpp` #include "rapidjson/document.h" #include "rapidjson/writer.h" #include "rapidjson/stringbuffer.h" #include <iostream> using namespace rapidjson; int main() { // 1. Parse a JSON string into DOM. const char* json = "{\"project\":\"rapidjson\",\"stars\":10}"; Document d; d.Parse(json); // 2. Modify it by DOM. Value& s = d["stars"]; s.SetInt(s.GetInt() + 1); // 3. Stringify the DOM StringBuffer buffer; Writer<StringBuffer> writer(buffer); d.Accept(writer); // Output {"project":"rapidjson","stars":11} std::cout << buffer.GetString() << std::endl; return 0; }
このソースコードではstarsの値10を取得して、加算して、出力するという処理をしています。