在C語言中,我們可以使用一些第三方庫來實現從文件中提取JSON的操作,比如可以使用cJSON這個開源的庫。下面我們就來具體了解一下如何使用cJSON來實現這個操作。
// 引入頭文件 #include "cJSON.h" // 打開文件并讀取內容 FILE* fp = fopen("example.json", "r"); fseek(fp, 0, SEEK_END); long size = ftell(fp); rewind(fp); char* buffer = (char*)malloc(size); fread(buffer, 1, size, fp); fclose(fp); // 解析JSON cJSON* root = cJSON_Parse(buffer); if (root == NULL) { printf("Error before: [%s]\n", cJSON_GetErrorPtr()); } else { // 讀取JSON數據 cJSON* name = cJSON_GetObjectItem(root, "name"); cJSON* age = cJSON_GetObjectItem(root, "age"); cJSON* email = cJSON_GetObjectItem(root, "email"); // 輸出JSON數據 printf("Name: %s\n", name->valuestring); printf("Age: %d\n", age->valueint); printf("Email: %s\n", email->valuestring); cJSON_Delete(root); }
在上述代碼中,我們首先通過fopen打開了文件,并將讀取到的文件內容放入buffer中。然后,我們使用cJSON_Parse解析了這個JSON數據,并通過cJSON_GetObjectItem獲取了JSON中的幾個數據項。最后,我們通過調用cJSON_Delete來釋放從JSON數據中提取出來的內存。
總而言之,使用第三方庫cJSON可以方便高效地從JSON文件中提取數據,同時也可以避免一些低級的錯誤處理工作。