2010-07-01 (木)
日記に付いている検索が全く機能を果たしていなかったので,Googleに飛ばすようにした.
登録されてるキーワード類は特別扱いする検索だったけど,そもそもキーワードファイルが無かった.いつ消してしまったんだろ.
*C++用の簡易JSONパーサ(json.h)
includeするだけで使える簡単なJSONライブラリを公開しました.
インクルードするだけという同じコンセプトでpicojsonをKazuho@Cybozu Labsさんが公開されているので,たぶんそっちの方がちゃんと使えます.
picojson少し使ったのですが,しっくりこないので,試しに自分で書いてみました.json.hは手軽さ重視で作ってます.
昨日のhttp.hと合わせると,数行でweb上のAPI叩くプログラムがC++で書けます.
#include <iostream> #include "json.h" using namespace std; int main(int argc,int argv[]) { string s = "[1,null,[31 , 32, \"asdfg\\\"hjk\" , {\"hoge\" : -123e6 },123 ],null,5,0]"; json::jsvalue v; json::parse(v, s); cout << (int)v[2][1] << endl; cout << (string)v[2][2] << endl; cout << (int)v[2][3]["hoge"] << endl; cout << v[1].is_null() << endl; }
こんな感じで[]演算子で参照できます.配列なら数値で,オブジェクトなら文字列を添字としてください.
jsvalueは(int)か(string)にキャストされると,その内容を返します.
存在しない要素を参照すると,nullを表すオブジェクトが返りますが,nullの要素と区別できないので,後でundefinedを追加する予定です.
あと,構文チェックまだ実装してないので,parse()は常にtrue返します.
*ああ
そろそろCodeReposやgithubとか使うようにしようかなぁ.家のSubversionじゃなくて,公開リポジトリ上で開発した方が公開することまで考えると何かと便利なのかも.