?? C 2.0 是一款在 C 語言基礎上的高性能解釋器,它可以輕松地讀取 JSON 文件夾中的數據。JSON 文件夾是一種輕量級的數據交換格式,它以鍵值對的形式存儲數據,比 XML 文檔更加簡單有序,因此被廣泛應用于 Web 應用程序和移動應用程序中。接下來讓我們看看如何使用 C 2.0 讀取 JSON 文件夾中的數據。
#include "cjson.h" #includeint main() { char* json_str = "{ \"name\":\"Mr. Chan\", \"age\":20 }"; cJSON* json = cJSON_Parse(json_str); if (json == NULL) { printf("Error before: [%s]\n", cJSON_GetErrorPtr()); } else { printf("name: %s\n", cJSON_GetObjectItem(json, "name")->valuestring); printf("age: %d\n", cJSON_GetObjectItem(json, "age")->valueint); } cJSON_Delete(json); return 0; }
?? 以上就是一個簡單的例子,它通過 cJSON_Parse() 函數將 JSON 字符串解析成一個 cJSON 對象,然后使用 cJSON_GetObjectItem() 函數獲取相應的鍵值對數據。若解析失敗,則 cJSON_Parse() 函數會返回 NULL,此時可以使用 cJSON_GetErrorPtr() 函數獲取錯誤信息。
?? 上述代碼僅適用于讀取字符串類型的 JSON 數據,如果要讀取文件類型的 JSON 數據,可以使用標準的文件 I/O 函數。以下是讀取 JSON 文件夾中的數據的示例代碼:
#include "cjson.h" #includeint main() { cJSON* json = NULL; FILE* fp = fopen("data.json", "r"); if (fp == NULL) { printf("Could not open file data.json\n"); return 1; } fseek(fp, 0L, SEEK_END); const long int size = ftell(fp); fseek(fp, 0L, SEEK_SET); char* buffer = (char*)calloc(size+1, sizeof(char)); fread(buffer, size, sizeof(char), fp); json = cJSON_Parse(buffer); if (json == NULL) { printf("Error before: [%s]\n", cJSON_GetErrorPtr()); } else { printf("name: %s\n", cJSON_GetObjectItem(json, "name")->valuestring); printf("age: %d\n", cJSON_GetObjectItem(json, "age")->valueint); } cJSON_Delete(json); free(buffer); fclose(fp); return 0; }
?? 在這個示例中,我們首先使用 fopen() 函數打開一個名為 data.json 的文件,然后使用 fseek() 和 ftell() 函數獲取文件的大小并將文件指針移動到文件開頭。接下來,使用 calloc() 函數創建一個大小為文件大小加一的緩沖區,并使用 fread() 函數從文件中讀取數據。最后,使用 cJSON_Parse() 函數將緩沖區中的數據解析為一個 cJSON 對象。
?? 總的來說,C 2.0 是一個輕量級、高性能的解釋器,它可以輕松地讀取 JSON 文件夾中的數據并進行操作。通過使用 C 2.0,我們可以輕松地在 C 語言程序中處理 JSON 數據,這對于 Web 應用程序和移動應用程序開發非常有用。