braintag

公開してしまう備忘録

JsonCpp

113966179_21836ae41d.jpg

C++でJSONを扱えるライブラリ。

http://jsoncpp.sourceforge.net/

 

Jsonデータを生成したい場合。

   Json::Value root;
    root["A"]["C"]="ABC";
    root["A"]["B"][static_cast<unsigned int>(0)]="A";//配列を埋め込みたい場合。castしないとエラーになる
    root["A"]["B"][1]="B"; //Json::Value a=root["A"]とかやると次からa["B"]でアクセス可能

 

   Json::StyledWriter writer;//書き込みたい場合
   std::string rewrite;
   rewrite = writer.write( root );
   printf("%s\n", rewrite.c_str() );

結果

{
   "A" : {
      "B" : [ "A", "B" ],
      "C" : "ABC"
   }
}

 

JSONデータのパース

Json::Reader reader;

Json::Value root;

reader.parse( input, root );//inputはJSONデータ

JSONデータへのアクセス

printf("%s\n",root["A"]);//こんなんでもOKだけどちゃんとis~で生存チェックすべき。