ねむみ高まる

文章力がないので、文章を書く練習をしています。

jsoncppを使ってみた

C++jsonを扱うコードをろくに書いたことがなくて知識的に不安だったので、ぐーぐる先生で調べて出てきたjsoncppというossを使ってjsonのファイルをパースして表示してみました。 github.com

内容

test.json

{"name" : "nemumitakamaru","email" : "nemumitakamaru@gmail.com","number":1}


C++ソースコード

#include <iostream>
#include <fstream>
#include <string>

#include <json/json.h>

using namespace std;

int main()
{
    // ファイルの読み込み
    ifstream infile;
    infile.open("test.json");
    if(!infile) {
        exit(1);
    }

    string testJson;
    getline(infile, testJson);

    infile.close();

    // jsonをパース
    Json::Reader reader;
    Json::Value value;
    reader.parse(testJson, value);

    // 表示
    cout << value["name"].asString() << endl;
    cout << value["email"].asString() << endl;
    cout << value["number"] << endl;

    return 0;
}


出力結果

nemumitakamaru
nemumitakamaru@gmail.com
1


という感じでコードでjsoncppを使う分には簡単にできました。

それ以前の問題で、libファイルを作って、VS2015でincludeのパスを通して、libを登録してビルドするという段階で知識がなくて苦戦しました。それに関しては調査してまたブログにまとめようと思います。

あと、基本的なファイルストリームのifstreamの使い方をよく分かっていないことも分かったので、それもまた今度調査してみようと思います。 ファイル読み込みに失敗しているかを判定するために、infile.bad()infile.fail()等色々あるっぽいです。

参考文献

kaworu.jpn.org

qiita.com