在C語言中,常常需要將JSON數(shù)據(jù)轉(zhuǎn)換成類對象。這時就需要使用JSON-C庫。
struct json_object *json_object_new_object(void); struct json_object *json_object_new_boolean(json_bool b); struct json_object *json_object_new_int(int32_t i); struct json_object *json_object_new_double(double d); struct json_object *json_object_new_string(const char *s);
JSON-C庫提供了一系列函數(shù),可用于創(chuàng)建JSON對象。例如,json_object_new_object()用于創(chuàng)建空的JSON對象,json_object_new_boolean()用于創(chuàng)建布爾類型的JSON對象。
enum json_type json_object_get_type(const struct json_object *obj);
使用上面的函數(shù),可以獲取JSON對象的類型。
struct json_object *json_object_array_get_idx(const struct json_object *array, size_t idx);
json_object_array_get_idx()用于獲取JSON數(shù)組中指定索引位置的元素。若數(shù)組越界,則返回NULL。
struct json_object *json_object_object_get(const struct json_object *obj, const char *key);
使用上面的函數(shù),可以獲取JSON對象中指定鍵對應(yīng)的值。若鍵不存在,則返回NULL。
JSON-C庫還提供了其他一些函數(shù),如json_object_is_type()用于判斷JSON對象的類型,json_object_to_json_string()用于將JSON對象轉(zhuǎn)換成字符串。
struct json_object* json_tokener_parse(const char *str);
最后,使用上面的函數(shù),把JSON字符串解析成JSON對象。這樣就完成了JSON轉(zhuǎn)類對象的操作。