JSON形式プロファイル


最近、印刷注文書をフォーマットする項目を書いて、構成に使って、比較的軽量で、ちょうどプログラムが処理するデータはjsonフォーマットで、そこでついでにlibjsoncppで1つのプロファイルの解析をしました.
libjsoncppのダウンロードアドレス
また、プロジェクト全体をソースファイルで直接プロジェクトに追加することができ、プラットフォームをまたいで行うのがいいです.
Makefile
all:
	g++ -static -o ./bin/jsonformat -g -O0 -I./libjsoncpp/include -I./libjsoncpp/src jsonformat.cpp \
	libjsoncpp/src/json_reader.cpp \
	libjsoncpp/src/json_writer.cpp \
	libjsoncpp/src/json_value.cpp 
	

プロファイルconfig.json
{
	"order":{
		"header": "         "
	}, 
	"usbprint":{
		"printer": "Generic / Text Only"
	}
}

マスタパートコード
#include <json/json.h>

void GetOrderHeader(const std::string & configpath, std::string & header)
{
    std::ifstream myfile (configpath.c_str());
    Json::Value root; Json::Reader reader;
    if (reader.parse(myfile, root, false)){
        header = root["order"].get("header", "").asString();
    }
    return ;
}

int main(int argc, char * argv[])
{
    enum {MaxLineLen = 4000};
    std::string szHeader  = "";
    char szPath [MaxLineLen] = "config.json";
    GetOrderHeader(szPath, szHeader);  if (szHeader.empty())  return -2;
    return 0;
}