«

»

3月
05

[c++][JSON]picojson

ヘッダファイルのみのC++用JSONライブラリ picojson

「C++で手軽なJSONパーサがないだろうか?」と思っていたところ、
なんとヘッダファイルだけで記載された素晴らしいライブラリがありました(いまさらですみません。)
ソースは今はgithubで管理されていて、こちらに最新版があるようです。

kazuho/picojson https://github.com/kazuho/picojson

使い方

こんな感じの、ユーサーIDとパスワードを管理するオブジェクトが2つあるというデータだとすると、

[
	{
	 	"userID":"foo",
		"userPW":"bar"
	},
	{	
		"userID":"hoge",
		"userPW":"hogehoge"
	} 
]
void read(const char* filepath) {
   std::ifstream ifs(filepath);
    picojson::value v;
    ifs >> v;
    std::string err = picojson::get_last_error();
    if(!err.empty()) {
        std::cerr << err << std::endl;
        return;
    }
    if(v.is<picojson::array>()) {
        picojson::array& a = v.get<picojson::array>();
        for (picojson::array::iterator i = a.begin(); i != a.end(); ++i) {
            picojson::object& o = (*i).get<picojson::object>();
            std::cout << o["userID"].get<std::string>() << std::endl;
            std::cout << o["userPW"].get<std::string>() << std::endl;
        }
    }
}

と、こんな感じで取得できる。

コメントを残す

メールアドレスは公開されません

次の HTMLタグおよび属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>