JSONパーサーを GitHub で公開してみました。C++11 での実装です。
とはいえ、世には沢山のJSONパーサーが存在している上に Boost.JSON も出来たようですし、いまさら? というご感想ごもっともだと思います。
なので現実的には既存のものを採用すればよいと思うのですが、JSON の仕様は比較的シンプルなので自前実装もアリかなと思いました。
JSON にコメントを書きたいし、配列&連想配列の末項のカンマ記述を許したい。という付加機能あたりと、JSON Pointer なる仕様も(緩く)実装しています。
C++11未満とストリーム入力のパースは切り捨てているので、コード量は少な目だと思います。
昨今のライセンス事情よくわかっておりませんが、いちばん緩い条件と思われる CC0 にしています。
Boost.JSON が出来たことで、C++界隈でJSONを扱う場合はコレが本命になるのかなーと漠然と思っています。
となると Boost.property_tree のほうの JSONはどうするんだろという疑問もわきます。
property_tree には XML の実装もありますが、どちらも property_tree っていうデータ構造に対するちょっと便利な付加機能っぽい印象だったので、用途が違うのかなとも思いました。