2013年3月21日木曜日

C++でJSONを扱う件。

C++でJSONを扱う件です。
もちろん、
double pw = doc.info.pw;
のような形でアクセスできればCODINGもラクですが、
structやらclassやらを専用に準備してなきゃできないわけで、
動的には無理なわけです。

ということで、いろんなパーサとかを見てまわったのですが、
なかなかイイ感じのものがない。
『どうする?』   →つくりましょう!

『だれがやる?』 →私でしょう!
『いつやるか?』 今でしょう!











ということで、つくりました。
といっても、上記のようにはできるわけもなく、ここはPHP方式でやります。
即ち、
double pw = doc.info.pw;
ではなく、

double pw = D["doc"]["info"]["pw"];
って形です。


STEP1
STEP1は、当然ながら、object型みたいなものを定義するところから始まります。
クラスでも構造体でもかまいませんが(C++において、classとSTRUCTはほとんど同じ)、
DOM的に、親、子、兄、弟を参照するポインタをもつobjectを定義すればいいのです。
さらに、このOBJECTを生成するようなコンテナもあったほうが、あとあと便利なので、そこからつくります。
即ち、
objectContainer C;
objson& o = *C.createObjectJson();
o["doc"]["info"]["pw"] = 297.0;
みたいな使い方です。
こうしておけば、Cのデストラクタで、createされたobjectをキレイに破棄できますよね。

。。つづく。。

0 件のコメント:

コメントを投稿