C語言可以通過調用第三方庫來方便地操作JSON文件內容,下面介紹一個使用cJSON庫的例子。
#include <stdio.h>#include <cJSON.h>int main() { /* 創建一個JSON對象 */ cJSON* root = cJSON_CreateObject(); /* 添加一些數據 */ cJSON_AddNumberToObject(root, "num", 123); cJSON_AddStringToObject(root, "str", "hello"); /* 創建一個JSON數組 */ cJSON* array = cJSON_CreateArray(); /* 添加數組元素 */ cJSON* item1 = cJSON_CreateObject(); cJSON_AddStringToObject(item1, "name", "Bob"); cJSON_AddNumberToObject(item1, "age", 18); cJSON_AddItemToArray(array, item1); cJSON* item2 = cJSON_CreateObject(); cJSON_AddStringToObject(item2, "name", "Alice"); cJSON_AddNumberToObject(item2, "age", 20); cJSON_AddItemToArray(array, item2); cJSON_AddItemToObject(root, "list", array); /* 輸出JSON字符串 */ char* json_str = cJSON_Print(root); printf("%s\n", json_str); /* 釋放內存 */ cJSON_Delete(root); free(json_str); return 0; }
以上代碼中,
- 通過cJSON_CreateObject()函數創建一個JSON對象。
- 使用cJSON_AddXXXToObject()系列函數向JSON對象中添加數據。
- 通過cJSON_CreateArray()函數創建一個JSON數組。
- 使用cJSON_CreateObject()創建JSON對象,并添加到數組中。
- 使用cJSON_AddItemToArray()添加JSON對象到數組中。
- 最后通過cJSON_Delete()函數刪除JSON對象,并通過free()函數釋放JSON字符串的內存。
此外,還可以通過讀取JSON文件來獲取JSON對象,使用cJSON_Parse()函數將JSON字符串解析為JSON對象并進行操作。
/* 讀取JSON文件 */ FILE* fp = fopen("data.json", "rb"); fseek(fp, 0L, SEEK_END); long size = ftell(fp); fseek(fp, 0L, SEEK_SET); char* json_str = malloc(sizeof(char) * (size + 1)); fread(json_str, sizeof(char), size, fp); json_str[size] = '\0'; /* 解析JSON字符串 */ cJSON* root = cJSON_Parse(json_str); /* 操作JSON對象 */ /* 釋放內存 */ cJSON_Delete(root); free(json_str); fclose(fp);