C語言是一種廣泛運用于嵌入式系統開發和系統編程的高級編程語言,對于處理文本文件有著強大的能力?,F在,越來越多的軟件開發中,使用json文件作為數據格式,因此,我們需要學會使用C語言讀寫json文件。
首先,我們需要使用一個稱為cJSON的C語言庫,該庫提供了一組方便的函數來讀取和寫入json文件。我們可以通過以下方式使用該庫:
#include <stdio.h> #include <cJSON.h> int main() { // 創建一個json對象 cJSON *jsonObject = cJSON_CreateObject(); // 添加鍵值對到對象中 cJSON_AddStringToObject(jsonObject, "name", "Alice"); cJSON_AddNumberToObject(jsonObject, "age", 25); // 寫入到文件中 FILE *fp = fopen("data.json", "w"); char *jsonStr = cJSON_Print(jsonObject); fprintf(fp, "%s", jsonStr); fclose(fp); // 從文件中讀取json對象 fp = fopen("data.json", "r"); fseek(fp, 0, SEEK_END); long fileSize = ftell(fp); fseek(fp, 0, SEEK_SET); char *jsonFileContent = (char*) malloc((size_t) fileSize); fread(jsonFileContent, 1, (size_t) fileSize, fp); fclose(fp); cJSON *jsonObjFromFile = cJSON_Parse(jsonFileContent); char* name = cJSON_GetObjectItem(jsonObjFromFile, "name")->valuestring; int age = cJSON_GetObjectItem(jsonObjFromFile, "age")->valueint; // 打印結果 printf("name: %s age: %d\n", name, age); // 釋放資源 free(jsonFileContent); cJSON_Delete(jsonObject); cJSON_Delete(jsonObjFromFile); return 0; }
在上述代碼中,我們創建了一個json對象,并向其中添加了兩個鍵值對。然后,我們將其寫入到一個名為data.json的文件中。此后,我們從該文件中讀取json對象。最后,我們打印了從文件中讀取的json數據的結果。