C語言中經常需要處理JSON字符串,將其轉換成對象以供程序使用。C語言的CJSON庫可以實現該功能,下面我們通過示例來學習CJSON庫將JSON字符串轉為對象的方法。
#include<stdio.h> #include<cJSON.h> int main() { // 定義JSON字符串 char *json_str = "{ \\"name\\":\\"Tom\\", \\"age\\":18, \\"gender\\":\\"male\\" }"; // 將JSON字符串轉換為JSON對象 cJSON *json_obj = cJSON_Parse(json_str); // 獲取JSON對象中的值 char *name = cJSON_GetObjectItem(json_obj, "name")->valuestring; int age = cJSON_GetObjectItem(json_obj, "age")->valueint; char *gender = cJSON_GetObjectItem(json_obj, "gender")->valuestring; // 輸出值 printf("Name: %s\n", name); printf("Age: %d\n", age); printf("Gender: %s\n", gender); return 0; }
以上示例中,我們先定義了一個JSON字符串,它表示了一個人的信息,包括姓名、年齡和性別。接下來,我們調用CJSON庫提供的cJSON_Parse函數,將JSON字符串轉換為JSON對象。然后,我們使用cJSON_GetObjectItem函數獲取JSON對象中的值,并將這些值輸出到控制臺上。
需要注意的是,CJSON庫提供的cJSON_Parse函數是動態申請內存的,因此我們需要調用cJSON_Delete函數來釋放內存。
#include<stdio.h> #include<cJSON.h> int main() { // 定義JSON字符串 char *json_str = "{ \\"name\\":\\"Tom\\", \\"age\\":18, \\"gender\\":\\"male\\" }"; // 將JSON字符串轉換為JSON對象 cJSON *json_obj = cJSON_Parse(json_str); // 獲取JSON對象中的值 char *name = cJSON_GetObjectItem(json_obj, "name")->valuestring; int age = cJSON_GetObjectItem(json_obj, "age")->valueint; char *gender = cJSON_GetObjectItem(json_obj, "gender")->valuestring; // 輸出值 printf("Name: %s\n", name); printf("Age: %d\n", age); printf("Gender: %s\n", gender); // 釋放內存 cJSON_Delete(json_obj); return 0; }
以上就是CJSON庫將JSON字符串轉為對象的基本方法,希望對大家有所幫助。