C/C++言語でおすすめのJSONライブラリを教えて!
こういった悩みにお答えします.
本記事の信頼性
- リアルタイムシステムの研究歴12年.
- 東大教員の時に,英語でOS(Linuxカーネル)の授業.
- 2012年9月~2013年8月にアメリカのノースカロライナ大学チャペルヒル校(UNC)コンピュータサイエンス学部で客員研究員として勤務.C言語でリアルタイムLinuxの研究開発.
- プログラミング歴15年以上,習得している言語: C/C++,Python,Solidity/Vyper,Java,Ruby,Go,Rust,D,HTML/CSS/JS/PHP,MATLAB,Assembler (x64,ARM).
- 東大教員の時に,C++言語で開発した「LLVMコンパイラの拡張」,C言語で開発した独自のリアルタイムOS「Mcube Kernel」をGitHubにオープンソースとして公開.
- 2020年1月~現在はアメリカのノースカロライナ州チャペルヒルにあるGuarantee Happiness LLCのCTOとしてECサイト開発やWeb/SNSマーケティングの業務.2022年6月~現在はアメリカのノースカロライナ州チャペルヒルにあるJapanese Tar Heel, Inc.のCEO兼CTO.
- 最近は自然言語処理AIとイーサリアムに関する有益な情報発信に従事.
- (AI全般を含む)自然言語処理AIの論文の日本語訳や,AIチャットボット(ChatGPT,Auto-GPT,Gemini(旧Bard)など)の記事を50本以上執筆.アメリカのサンフランシスコ(広義のシリコンバレー)の会社でプロンプトエンジニア・マネージャー・Quality Assurance(QA)の業務委託の経験あり.
- (スマートコントラクトのプログラミングを含む)イーサリアムや仮想通貨全般の記事を200本以上執筆.イギリスのロンドンの会社で仮想通貨の英語の記事を日本語に翻訳する業務委託の経験あり.
こういった私から学べます.
C言語を独学で習得することは難しいです.
私にC言語の無料相談をしたいあなたは,公式LINE「ChishiroのC言語」の友だち追加をお願い致します.
私のキャパシティもあり,一定数に達したら終了しますので,今すぐ追加しましょう!
独学が難しいあなたは,元東大教員がおすすめするC言語を学べるオンラインプログラミングスクール5社で自分に合うスクールを見つけましょう.後悔はさせません!
目次
JSON
JSONとは,JavaScript Object Notationの略で,データ記述言語の1つです.
JSONの特徴は,軽量なテキストベースのデータ交換用フォーマットであり,プログラミング言語を問わず利用できることです.
そこで,本記事では,C/C++言語でおすすめのJSONライブラリを紹介します.
C/C++言語でおすすめのJSONライブラリ
C/C++言語でおすすめのJSONライブラリを紹介します.
C言語:JSON-C
JSON-Cは,C言語でJSONオブジェクトを簡単に構築し,JSON形式の文字列として出力,解析して,JSONオブジェクトのC言語の表現に戻すことができる参照カウントオブジェクトのモデルを実装するライブラリです.
JSON-Cの特徴は以下になります.
- 詳細なドキュメント
- Doxygen/Valgrindをサポート
- 多くのテストスイート
JSON-Cのコードは,約13,000行です.
1 |
$ git clone https://github.com/json-c/json-c |
Ubuntuであれば以下のコマンドでインストールできます.
1 |
$ sudo apt-get install libjson-c-dev |
C言語:parson
parsonは,C言語で書かれた軽量なJSONライブラリです.
parsonの特徴は以下になります.
- 軽量(1つのCファイルと1つのヘッダファイルのみ)
- シンプルなAPI
- ドット記法によるJSON値のアドレス指定(C言語の構造体や多くのオブジェクト指向のプログラミング言語におけるオブジェクトに類似,例:"objectA.objectB.value")
- C89互換
- 多くのテストスイート
parsonライブラリのコードは,約2,700行です.
1 |
$ git clone https://github.com/kgabis/parson |
C言語:cJSON
cJSONは,C言語のANSI Cに準拠した超軽量はJSONライブラリです.
cJSONの特徴は以下になります.
- 軽量(1つのCファイルcJSON.cと1つのヘッダファイルcJSON.hのみ)
- 多くのビルドオプション
- 詳細なドキュメント
- 多くのテストスイート
cJSONのコードは,約3,400行です.
1 |
$ git clone https://github.com/DaveGamble/cJSON |
C言語:Jansson
Janssonは,JSONデータのエンコード,デコード,操作のためのCライブラリです.
Janssonの特徴は以下になります.
- シンプルで直感的なAPIとデータモデル
- 包括的なドキュメント
- 他のライブラリへの依存なし
- Unicodeの完全サポート(UTF-8)
- 多くのテストスイート
Janssonのコードは,約11,500行です.
1 |
$ git clone https://github.com/akheron/jansson |
C++言語:JsonCpp
JsonCppは,JSONの値を操作するためのC++ライブラリで,文字列へのシリアライズと文字列からのデシリアライズを行うことができます.
また,アンシリアライズ/シリアライズのステップで既存のコメントを保持することができるため,ユーザーの入力ファイルを保存するのに便利な形式です.
1 |
$ git clone https://github.com/open-source-parsers/jsoncpp |
Ubuntuであれば以下のコマンドでインストールできます.
1 |
$ sudo apt-get install libjsoncpp-dev |
C++言語:json
jsonは,C++言語によるJSONライブラリです.
jsonの特徴は以下になります.
- 直感的な構文
- 簡単な統合(single_include/nlohmann/json.hppのみ)
- 本格的なテスト
jsonのコードは,約23,400行です.
1 |
$ git clone https://github.com/nlohmann/json |
C++言語:PicoJSON
PicoJSONは,C++言語用の小さなJSONパーサ・シリアライザのライブラリです.
PicoJSONの特徴は以下になります.
- ヘッダファイルのみ
- 外部依存なし(標準的な C++ ライブラリのみを使用します)
- STL-frendly(配列はstd::vectorで,オブジェクトはstd::mapで表現する)
- プルインタフェースとストリーミング(イベントベース)インタフェースの両方を提供する
PicoJSONのコードは,約1,200行です.
1 |
$ git clone https://github.com/kazuho/picojson |
まとめ
C/C++言語でおすすめのJSONライブラリを紹介しました.
いろいろ使ってみて,あなたにあうJSONライブラリを見つけましょう!
C言語を独学で習得することは難しいです.
私にC言語の無料相談をしたいあなたは,公式LINE「ChishiroのC言語」の友だち追加をお願い致します.
私のキャパシティもあり,一定数に達したら終了しますので,今すぐ追加しましょう!
独学が難しいあなたは,元東大教員がおすすめするC言語を学べるオンラインプログラミングスクール5社で自分に合うスクールを見つけましょう.後悔はさせません!