見出し画像

json-c を使って C で JSON を読む

json-c とは

JSON データを C で扱うためのスタンダードなライブラリ。 一見とっつきにくく感じるが、体系的に理解すれば扱いは難しくない。 C++ であればライブラリの選択肢は多いが、C で使えるというのも特筆すべき点の一つ。

JSON データのパース

まず json_tokener 系の関数を使ってパースする。 以下の実装例では json_tokener_parse_verbose 関数を利用していて、パース結果は json_object オブジェクトとして返される。 返却された json_object は、処理が終わった後に json_object_put 関数を使って参照を外す必要がある。 これを忘れるとメモリリークになるので注意すること。 また、json_tokener_parse_verbose 関数は JSON データが NULL 終端であることを期待する。 これがよろしくない場合は、次に例示する json_tokener_parse_ex 関数を使用すると良い。

 enum json_tokener_error error;
 struct json_object *result =
     json_tokener_parse_verbose("{\"foo\": \"bar\"}", &error);
 if (json_tokener_success != error) {
   /* ERROR */
 }

 /* ... */

 json_object_put(result);

ここから先は

5,379字

¥ 250

この記事が気に入ったらサポートをしてみませんか?