2013年5月23日木曜日

CでJSONをパースする

自分でゴリゴリ書くと辛い。そんな訳で、parsonを試してみた。
[{"Name":"Taro", "Age":"10"}, 
  {"Name":"Hanako", "Age":"20"}]
みたいなJSONを解析するには
int i;
JSON_Value *root_value;
JSON_Array *persons;
JSON_Object *person;

root_value = json_parse_file("ファイル名");

persons = json_value_get_array(root_value);
for ( i = 0; i < json_array_get_count(persons); i++ )
{
  person = json_array_get_object(persons, i);
  printf("%s, %s\n", 
                json_object_get_string(person, "Name"), 
        json_object_get_string(person, "Age"));
}
json_value_free(root_value);
みたいな感じでやればパース出来る。 日本語とか大丈夫なのかはまだ未確認だけど、便利そう。