在C語(yǔ)言中,想要將JSON數(shù)據(jù)轉(zhuǎn)換成類(lèi)需要用到萬(wàn)能類(lèi)。下面我們介紹一下具體的實(shí)現(xiàn)方法。
//定義一個(gè)結(jié)構(gòu)體用于存儲(chǔ)JSON數(shù)據(jù) typedef struct { char name[100]; int age; char address[200]; } UserInfo; //使用cJSON解析JSON字符串并將數(shù)據(jù)轉(zhuǎn)換成結(jié)構(gòu)體 cJSON *root = cJSON_Parse(json_str); if (root != NULL) { cJSON *name_node = cJSON_GetObjectItem(root, "name"); cJSON *age_node = cJSON_GetObjectItem(root, "age"); cJSON *address_node = cJSON_GetObjectItem(root, "address"); UserInfo user_info; memset(&user_info, 0, sizeof(UserInfo)); if (name_node != NULL) { strcpy(user_info.name, name_node->valuestring); } if (age_node != NULL) { user_info.age = age_node->valueint; } if (address_node != NULL) { strcpy(user_info.address, address_node->valuestring); } //釋放內(nèi)存 cJSON_Delete(root); }
通過(guò)cJSON_Parse函數(shù)解析JSON字符串得到JSON對(duì)象,然后使用cJSON_GetObjectItem函數(shù)取出對(duì)象中的數(shù)據(jù),最后將數(shù)據(jù)存儲(chǔ)到類(lèi)中的變量中即可。
以上就是如何將JSON轉(zhuǎn)類(lèi)的方法,希望對(duì)大家有所幫助。