C+json是一種常用于前后端數據傳遞的數據格式之一。在數據傳輸過程中,往往需要進行反序列化,將json字符串轉換為c+json對象。下面介紹一下如何進行c+json對象反序列化。
//以下是一個例子 #include#include int main() { const char* json_str = "{\"name\":\"Lucy\",\"age\":18,\"gender\":\"female\"}"; cJSON* json = cJSON_Parse(json_str); if(json) { cJSON* name = cJSON_GetObjectItemCaseSensitive(json, "name"); if(cJSON_IsString(name) && (name->valuestring!=NULL)) { printf("name : %s\n", name->valuestring); } cJSON* age = cJSON_GetObjectItemCaseSensitive(json, "age"); if(cJSON_IsNumber(age)) { printf("age : %d\n", age->valueint); } cJSON* gender = cJSON_GetObjectItemCaseSensitive(json, "gender"); if(cJSON_IsString(gender) && (gender->valuestring!=NULL)) { printf("gender : %s\n", gender->valuestring); } cJSON_Delete(json); } return 0; }
首先,需要把json字符串解析成c+json對象。cJSON_Parse函數可以實現該功能,它接受一個json字符串作為參數,返回一個cJSON對象。接著,使用cJSON_GetObjectItemCaseSensitive函數和鍵值對的鍵名,在c+json對象中找到對應的值,對值的類型和值本身進行判斷,然后輸出。
需要注意的是,在使用完c+json對象后,需要使用cJSON_Delete函數進行釋放,避免內存泄漏。