C/C++ の JSON パーサー

C/C++JSON パーサーを紹介する。

網羅的にするつもりはなかったが、
全部で11となった。
人気があるんですね。

一通り試したが、どれが使いやすというものはなかった。
学習コストも高くないので、まずは試してみる。

json-c

C 言語で実装した JSON パーサーです。

json-c は、参照カウントオブジェクトモデルを実装します

JSON形式の文字列を解析してJSONオブジェクトのC表現に戻します。

wikipedia: 参照カウントReference Counting

Mac の場合は brew コマンドでインストールできる。

Homebrew Formulae : json-c

下記のウェブサイトで使い方が紹介されている。

qiita: C/C++でJSONを読み込む(JSON-Cの使用方法まとめ)

cjson

ANSI C で実装された超軽量の JSON パーサーです。

wikipedia: ANSI C

Mac の場合は brew コマンドでインストールできる。

Homebrew Formulae : cjson

下記のウェブサイトで使い方が紹介されている。

Big Sky : C言語から分かりやすいAPIで扱える JSON パーサ cJSON

jansson

C 言語で実装した JSON パーサーです。
シンプルで直感的なAPIとデータモデルです。

Mac の場合は brew コマンドでインストールできる。

Homebrew Formulae : jansson

下記のウェブサイトで使い方が紹介されている。

qiita: Janssonの使い方

parson

Cで記述された軽量のJSONライブラリです。

軽量(2ファイルのみ parson.c parson.h)
下記のウェブサイトからダウンロードする。

github: parson

下記のウェブサイトで使い方が紹介されている。

qiita : jsonファイルパーサParsonの使い方

yyjson

ANSIC で記述された高性能JSONライブラリです。

1つの hファイル (yyjson.h) と1つのcファイル (yyjson.c) のみ
下記のウェブサイトからダウンロードする。

github: yyjson

下記のウェブサイトで使い方が紹介されている。

Big Sky : RapidJSON や simdjson よりも速いC言語から使えるJSONライブラリ yyjson

jsoncpp

C++で実装した JSON パーサーです。
コメントが扱える。

Mac の場合は brew コマンドでインストールできる。

Homebrew Formulae : jsoncpp

下記のウェブサイトで使い方が紹介されている。

Big Sky : コメントも扱える高機能な C++ 向け JSON パーサ jsoncpp

nlohmann-json

最新(modern)のC++用の JSON パーサです。
配列の処理に範囲for文やイテレータが使える。

cpprefjp: 範囲for文

cpprefjp: イテレータ

Mac の場合は brew コマンドでインストールできる。

Homebrew Formulae : nlohmann-json

下記のウェブサイトで使い方が紹介されている。

qiita : C++のjsonライブラリ決定版 nlohmnn-jsonn

rapidjson

C++用のJSONパーサーです。
SAXおよびDOMスタイルのAPI

wikipedia: SAX

wikipedia: DOM

Mac の場合は brew コマンドでインストールできる。

Homebrew Formulae : rapidjson

下記のウェブサイトで使い方が紹介されている。

qiita: c++のrapidjsonでjsonを読み込む

simdjson

SIMDで高速化されたC++JSONパーサーです。

wikipedia: SIMD

Mac の場合は brew コマンドでインストールできる。

Homebrew Formulae : simdjson

下記のウェブサイトで使い方が紹介されている。

zenn: simdjsonのメモ

picojson

C++JSONパーサーです。

ヘッダーオンリーライブラリ (picojson.h)
下記のウェブサイトからダウンロードする。

github: picojson

下記のウェブサイトで使い方が紹介されている。

qiita: C++のJSONパーサ picojson をためしてみました

jsmn

世界最速のJSONパーサーです

ヘッダーオンリーライブラリ ( jsmn.h)
下記のウェブサイトからダウンロードする。

github: jsmn

下記のウェブサイトで使い方が紹介されている。

memonano: jsmn.hを使ってみた

boost

Boost とは、C++の先駆的な開発者のコミュニティ、およびそのコミュニティによって公開されているオープンソースのソフトウェアライブラリのことです。

wikipedia: Boost C++ライブラリ

下記のウェブサイトで JSON パーサーとしての使い方が紹介されている。

boostjp: JSONの読み込み