TOC
json-cについて
json-cとは、C言語でjsonのbuild/parseを行うライブラリ。
なかなか便利なのだが、ドキュメントがあんまりないので自分でメモしていく。将来的にはまとめてドキュメントにしたい。
今回は、関数の一つである json_object_get_string()とjson_object_to_json_string() について。
json-cにおいては、jsonテキストをbuildするために(またはparseすると)json_objectという形式でデータを管理する。
使い方
jsonのvalueやkeyも最終的にこの形式になるのだが、そこから実際のテキストデータを取り出すのが…
- json_object_get_string()
- json_object_to_json_string()
…といった関数。それぞれの動作だが、以下のようなjsonテキストがあったとする。
{ "animal" : "dog" }
これをparseするコード。
#include
#include
#include
#include
#include "json.h"
int main(int argc, char **argv)
{
json_object *new_obj;
MC_SET_DEBUG(1);
new_obj = json_tokener_parse("{ \"animal\": \"dog\" }");
json_object_object_foreach(new_obj, key, val)
{
printf("key :%s\n", key);
printf("json_object_to_json_string:%s\n", json_object_to_json_string(val));
printf("json_object_get_string :%s\n", json_object_get_string(val));
}
json_object_put(new_obj);
return 0;
}
このコードを実行すると結果はこうなる。
key :animal
json_object_to_json_string:"dog"
json_object_get_string :dog
json_object_to_json_string()はjsonオブジェクトをそのままテキスト化(前後の”もついたまま)取得します。
json_object_get_string()はjsonオブジェクトの形式がstringであることを前提に前後の”は削除して取得します。