在C語言中操作JSON數據庫是一種非常常見的操作,使用庫可以輕易地實現操作。下面是一些常見的C語言JSON庫:
cJSON Jansson jsmn
接下來介紹如何使用cJSON進行對JSON數據庫的操作。
假設我們有一個如下格式的JSON:
{ "name": "John Smith", "age": 32, "city": "New York", "interests": ["music", "movies", "reading"] }
接下來使用cJSON讀寫該JSON文件的示例代碼:
#include "cJSON.h" #include <stdio.h> int main() { char* json_str = "{\"name\": \"John Smith\",\"age\": 32,\"city\": \"New York\",\"interests\": [\"music\", \"movies\", \"reading\"]}"; cJSON* root = cJSON_Parse(json_str); if (root) { cJSON* name_item = cJSON_GetObjectItem(root, "name"); char* name = cJSON_GetStringValue(name_item); printf("Name: %s\n", name); cJSON* age_item = cJSON_GetObjectItem(root, "age"); int age = cJSON_GetNumberValue(age_item); printf("Age: %d\n", age); cJSON* interests_item = cJSON_GetObjectItem(root, "interests"); cJSON* interest = NULL; int interests_size = cJSON_GetArraySize(interests_item); printf("Interests:\n"); for (int i = 0; i< interests_size; i++) { interest = cJSON_GetArrayItem(interests_item, i); printf("- %s\n", cJSON_GetStringValue(interest)); } cJSON_Delete(root); } return 0; }
以上代碼解釋如下:
- 首先定義了一個JSON字符串。
- 在代碼的第四行,使用cJSON_Parse函數將JSON字符串轉換為一個cJSON對象。
- 使用cJSON_GetObjectItem函數可以獲取cJSON對象中的元素,獲取到字符串元素后需要使用cJSON_GetStringValue函數才能獲得其中的值。
- 使用cJSON_GetNumberValue函數同樣可以獲取到數字類型的元素。
- 使用cJSON_GetArraySize可以獲取數組元素的大小,之后可以使用cJSON_GetArrayItem函數來獲取其中的元素。
- 最后使用cJSON_Delete函數來釋放內存。
在JSON文件以及許多API中,都會使用JSON來表示數據,因此對于C語言開發人員來說,掌握JSON的操作是非常重要的。
上一篇html 蘋方字體設置