cJSON是一個輕量級的C語言JSON解析器和生成器。其支持將JSON字符串轉換為JSON對象,并且可以通過API訪問和操作JSON對象。在本文中,我們將介紹如何使用cJSON將JSON字符串轉換為JSON對象。
#include <stdio.h> #include <cJSON.h> int main(void) { const char *json_str = "{\"name\":\"Tom\",\"age\":23,\"gender\":\"male\"}"; cJSON *json_obj = cJSON_Parse(json_str); if (json_obj != NULL) { cJSON *name = cJSON_GetObjectItem(json_obj, "name"); if (cJSON_IsString(name)) { printf("Name: %s\n", name->valuestring); } cJSON *age = cJSON_GetObjectItem(json_obj, "age"); if (cJSON_IsNumber(age)) { printf("Age: %d\n", age->valueint); } cJSON *gender = cJSON_GetObjectItem(json_obj, "gender"); if (cJSON_IsString(gender)) { printf("Gender: %s\n", gender->valuestring); } cJSON_Delete(json_obj); } return 0; }
首先,我們要定義一個JSON字符串,其中包含名字、年齡和性別。然后,我們通過調用cJSON_Parse函數將該字符串解析為JSON對象。
解析后,我們可以通過cJSON_GetObjectItem函數獲取JSON對象中的特定元素。由于cJSON_GetObjectItem返回的是cJSON類型的指針,我們需要判斷其類型,例如cJSON_IsString、cJSON_IsNumber等。如果元素是字符串或數字,我們可以通過相應的valuestring、valueint等字段獲取實際值。
最后,我們使用cJSON_Delete函數釋放JSON對象的內存。
本文中使用的代碼示例僅是cJSON用法的基本示例。cJSON提供了更多的API函數來處理JSON字符串和對象。如果你需要更深入地了解cJSON的用法,可以查看其官方文檔。