C 語言在讀寫 JSON 文件方面非常方便,可以使用第三方庫 cJSON 來處理 JSON 格式的數據。下面我們將通過一個簡單的示例來演示如何使用 cJSON 庫讀寫 JSON 文件內容。
首先,我們需要引入 cJSON 庫的頭文件:
#include <cjson/cJSON.h>
接著,我們可以使用下面的代碼來讀取 JSON 文件。
int main()
{
// 聲明 cJSON 對象指針
cJSON *json;
// 打開 JSON 文件
FILE *file = fopen("example.json", "rb");
// 讀取文件內容,并解析為 cJSON 對象
fseek(file, 0, SEEK_END);
long file_size = ftell(file);
fseek(file, 0, SEEK_SET);
char *json_str = (char*)calloc(file_size + 1, 1);
fread(json_str, file_size, 1, file);
fclose(file);
json = cJSON_Parse(json_str);
free(json_str);
// 讀取 JSON 值
cJSON *item = cJSON_GetObjectItem(json, "key");
printf("Value: %s", item->valuestring);
// 釋放 cJSON 對象
cJSON_Delete(json);
return 0;
}
上面的代碼首先打開 example.json 文件,并將其內容讀取到內存中。然后,調用 cJSON_Parse 函數將字符串解析為 cJSON 對象。接著,使用 cJSON_GetObjectItem 函數從 JSONObject 中讀取指定 key 對應的 value。最后,釋放 cJSON 對象。
如果我們需要將數據寫入到 JSON 文件中,則可以使用下面的代碼。
int main()
{
// 創建 cJSON 對象,并設置屬性
cJSON *json = cJSON_CreateObject();
cJSON_AddStringToObject(json, "name", "Bob");
cJSON_AddNumberToObject(json, "age", 20);
// 將 cJSON 對象轉換為字符串,寫入 JSON 文件
char *json_str = cJSON_Print(json);
FILE *file = fopen("example.json", "wb");
fwrite(json_str, strlen(json_str), 1, file);
fclose(file);
free(json_str);
// 釋放 cJSON 對象
cJSON_Delete(json);
return 0;
}
上面的代碼首先創建一個 cJSON 對象,并使用 cJSON_AddStringToObject 和 cJSON_AddNumberToObject 函數設置其屬性。然后,將 cJSON 對象轉換為字符串,并將其寫入到 example.json 文件中。最后,釋放 cJSON 對象。
通過上述示例,我們可以看到在 C 語言中讀寫 JSON 文件非常方便。使用 cJSON 庫,我們可以快速地處理 JSON 數據,實現各種文件相關的操作。
上一篇vue中onload事件
下一篇c 數組轉化json數組