ページ内ナビ
概要
JSON for Modern C++は、JSONをC++のオブジェクトや配列のように扱える単一ヘッダーライブラリです。文字列・ストリームの解析、値の更新、整形出力、バイナリ形式への変換までを、STLに近いAPIでまとめて扱えます。
特徴と向いている用途
実機検証あり(下記の環境・範囲に限定) · 内容確認日:
主な特徴
C++のコンテナに近い操作でJSONを扱う
オブジェクトや配列を初期化リストで組み立て、operator[]、at、findなどで値へアクセスできます。parseで文字列やストリームを読み、dumpや出力ストリームでJSONへ戻せるため、設定ファイルやAPI応答の入出力を一つの型で記述できます。
出典:[1]
向いている用途
既存のC++アプリへ軽量にJSON処理を足す
別プロセスや大きなランタイムを増やさず、設定、メッセージ、テスト用データをC++コード内で直感的に扱いたい場面に向きます。STLコンテナに慣れたチームなら、型変換や反復処理を既存の書き方へ寄せやすい構成です。
出典:[1]
導入前の確認
速度・メモリ要件と入力例外を設計に織り込む
READMEは開発しやすさを優先し、最速・最小メモリの実装を目標にしていないと明記しています。信頼できない入力ではparse_errorなどの例外処理、入力サイズの上限、UTF-8以外をdumpするときの扱いをアプリ側で決めてください。
出典:[1]
3.12.0 / C++ compiler with C++11 support
Pinned release header compiled; parsing, mutation, serialization, reparsing, and assertions executed locally.
参考にした公式資料
- [1]JSON for Modern C++ 3.12.0 README(2026-10-04)
- [2]JSON for Modern C++ 3.12.0 release(2026-10-04)
- [3]JSON for Modern C++ 3.12.0 MIT license(2026-10-04)
編集部からの補足
APIの読みやすさと導入の軽さを両立し、設定読み込みからAPI応答の生成まで幅広く使える点に注目しました。性能やメモリが最優先の処理では、実データで他のJSON実装とも比較してください。
3ステップで試す
- 1
3.12.0の単一ヘッダーを取得する
curlとC++11対応コンパイラーを用意し、公開リリースのjson.hppを作業ディレクトリへ保存します。
mkdir -p json-3.12.0-demo && cd json-3.12.0-demo && curl -fL -o json.hpp https://github.com/nlohmann/json/releases/download/v3.12.0/json.hpp - 2
解析とシリアライズの例を書く
JSON文字列を解析し、値を追加して再び解析する小さなC++プログラムを生成します。
printf '%s\n' '#include "json.hpp"' '#include <cassert>' '#include <iostream>' 'int main() {' ' auto value = nlohmann::json::parse(R"({"project":"OSS Tanbou","stars":3})");' ' value["ready"] = true;' ' const auto encoded = value.dump();' ' const auto decoded = nlohmann::json::parse(encoded);' ' assert(decoded["project"] == "OSS Tanbou" && decoded["ready"] == true);' ' std::cout << encoded << "\n";' '}' > demo.cpp - 3
コンパイルして往復変換を確かめる
C++11でビルドし、解析後の値をassertで検証してシリアライズ結果を表示します。
c++ -std=c++11 -I. demo.cpp -o demo && ./demo
成長
成長の推移 · 直近30日
50,720 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 178
- Open PR
- 52
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
カテゴリ
GitHubデータ
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- Windows Package Manager CLI26,479 Stars
共通タグ 1件 · 共通カテゴリ 1件 · 同じ言語
WindowsのパッケージをCLI・PowerShell・COM APIから検索、導入、更新する管理ツール
C++ - {fmt}25,864 Stars
共通タグ 1件 · 共通カテゴリ 1件 · 同じ言語
型安全なformat文字列でC++/Cの文字列整形・出力・日時・range表示を高速かつportableに扱う
C++ - Catch221,506 Stars
共通タグ 1件 · 共通カテゴリ 1件 · 同じ言語
C++の単体テスト・BDD・簡易ベンチマークを同じテスト実行環境で記述し、CMake/CTestへ組み込む
C++ - Filament20,561 Stars
共通タグ 1件 · 共通カテゴリ 1件 · 同じ言語
Android・iOS・desktop・Web向けにPBRとglTFを提供するreal-time rendering engine
C++ - bgfx17,536 Stars
共通タグ 1件 · 共通カテゴリ 1件 · 同じ言語
Direct3D・Metal・OpenGL・Vulkan・WebGLなどの差を抽象化し、既存engine/frameworkへcross-platform rendering層を組み込む
C++ - Arduino-ESP3217,465 Stars
共通タグ 1件 · 共通カテゴリ 1件 · 同じ言語
ESP32 family向けにArduino API・libraries・board definitions・toolchain integrationを提供するofficial Arduino core
C++
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。