JSON是一種輕量級的數據交換格式,廣泛應用于前后端之間的數據傳輸。在C語言中解析JSON字符串為對象需要借助第三方庫,本文介紹一下使用 cJSON 庫進行 JSON 解析的基本步驟。
#include <stdio.h> #include <cJSON.h> int main() { char* json_str = "{\"name\":\"Tom\",\"age\":18,\"gender\":\"male\"}"; cJSON* root = cJSON_Parse(json_str); // 將JSON字符串解析為cJSON對象 // 獲取字符串類型的值 cJSON* name_item = cJSON_GetObjectItem(root, "name"); const char* name = cJSON_GetStringValue(name_item); printf("Name: %s\n", name); // 獲取數字類型的值 cJSON* age_item = cJSON_GetObjectItem(root, "age"); int age = cJSON_GetNumberValue(age_item); printf("Age: %d\n", age); // 獲取布爾類型的值 cJSON* gender_item = cJSON_GetObjectItem(root, "gender"); int is_male = cJSON_IsTrue(gender_item); printf("Is male: %d\n", is_male); cJSON_Delete(root); // 釋放cJSON對象的內存 return 0; }
首先需要包含 cJSON.h 頭文件,然后使用 cJSON_Parse 函數將 JSON 字符串解析為 cJSON 對象,該函數返回一個指向 cJSON 對象的指針。通過 cJSON_GetObjectItem 函數獲取對象中指定名稱的值,然后根據值的類型使用相應的函數獲取其實際值。之后使用 cJSON_Delete 函數釋放 cJSON 對象的內存。
以上就是使用 cJSON 庫解析 JSON 字符串為對象的基本步驟,通過了解 cJSON 庫的接口函數,可以實現更為復雜的 JSON 解析,滿足各種數據解析需求。