C語言是一種通用的編程語言,在編寫程序時需要讀入處理文件數據。 JSON 是一種輕量級的數據交換格式,因其簡潔、易讀性強、擴展性好和互聯網傳輸效率高而被廣泛使用。C 語言支持讀取 JSON 數據,有關讀取 JSON 數據的方法,請參閱以下代碼。
#include "cJSON.h" #include "stdio.h" #include "stdlib.h" int main() { // 讀取 JSON 字符串內容 char *json_string = "{\r\n\"name\":\"Ada\",\r\n\"age\":28,\r\n\"score\":[90, 95, 80],\r\n\"address\":{\r\n\"city\":\"Shanghai\",\r\n\"province\":\"Shanghai\"\r\n}\r\n}"; // 創建 JSON 對象并進行解析 cJSON *root = cJSON_Parse(json_string); if (!root) { printf("Error before: [%s]\n", cJSON_GetErrorPtr()); return 1; } // 獲取 JSON 對象中的數據 cJSON *name = cJSON_GetObjectItem(root, "name"); printf("name: %s\n", name->valuestring); cJSON *age = cJSON_GetObjectItem(root, "age"); printf("age: %d\n", age->valueint); cJSON *score = cJSON_GetObjectItem(root, "score"); int score_size = cJSON_GetArraySize(score); printf("score size: %d\n", score_size); for (int i = 0; i < score_size; i++) { int s = cJSON_GetArrayItem(score, i)->valueint; printf("score item %d : %d\n", i, s); } cJSON *address = cJSON_GetObjectItem(root, "address"); cJSON *address_city = cJSON_GetObjectItem(address, "city"); printf("address city: %s\n", address_city->valuestring); cJSON_Delete(root); return 0; }
首先,我們使用 cJSON.h 中的 cJSON_Parse 函數將 JSON 字符串轉換成 JSON 對象。然后,我們使用 cJSON_GetObjectItem 函數獲取 JSON 對象中的數據,并使用 cJSON_GetArrayItem 函數獲取 JSON 數組中的元素。最后,我們使用 cJSON_Delete 函數釋放 JSON 對象占用的內存。
總之,使用 C 語言讀取 JSON 數據可以通過 cJSON 庫來實現。我們只需要使用 cJSON_Parse 函數進行解析,然后通過 cJSON_GetObjectItem 和 cJSON_GetArrayItem 函數獲取 JSON 對象中的數據,最后記得使用 cJSON_Delete 函數來釋放內存。使用 cJSON 庫可以讓 C 語言更容易地讀取和處理 JSON 數據,讓我們的程序更加高效、穩定!