在C語言中使用JSON數據庫可以為程序開發提供很大的便利,主要步驟如下:
1、安裝Json-c
Json-c是一種開源的C語言JSON解析器庫,它提供了一組API方法來解析和生成JSON格式。可以通過以下命令來安裝Json-c。
sudo apt-get install libjson-c-dev
2、在代碼中引入Json-c庫
#include <json-c/json.h>
3、解析JSON格式數據
Json-c庫提供了一組API方法來解析JSON格式數據,可以參考以下示例代碼:
/** * 取出JSON數據中指定鍵的值 * @param root json對象指針 * @param key 鍵字符串 * @param ret_type 返回值的類型:string、int、double * @return 返回值 */ static void *get_json_value(struct json_object *root, const char *key, const char *ret_type) { struct json_object *obj = NULL; void *ret = NULL; if (json_object_object_get_ex(root, key, &obj)) { if (strcmp(ret_type, "string") == 0) { ret = (void*)json_object_get_string(obj); } else if (strcmp(ret_type, "int") == 0) { ret = (void*)(long)json_object_get_int64(obj); } else if (strcmp(ret_type, "double") == 0) { ret = (void*)(double)json_object_get_double(obj); } } return ret; } int main(int argc, char **argv) { char *json_str = "{\"name\": \"張三\", \"age\": 23, \"salary\": 5600.75}"; struct json_object *root = json_tokener_parse(json_str); char *name = (char*)get_json_value(root, "name", "string"); int age = *(int*)get_json_value(root, "age", "int"); double salary = *(double*)get_json_value(root, "salary", "double"); printf("name: %s, age: %d, salary: %.2f\n", name, age, salary); return 0; }
4、生成JSON格式數據
同樣,Json-c庫也提供了一組API方法來生成JSON格式數據,以下是一個生成JSON格式數據的示例代碼:
struct json_object *obj = json_object_new_object(); json_object_object_add(obj, "name", json_object_new_string("張三")); json_object_object_add(obj, "age", json_object_new_int(23)); json_object_object_add(obj, "salary", json_object_new_double(5600.75)); char *json_str = json_object_to_json_string(obj); printf("%s\n", json_str);
以上就是在C語言中使用JSON數據庫的基本步驟,通過使用Json-c庫,我們可以方便地解析和生成JSON格式數據,從而在程序開發中提高開發效率。