C語言是一門廣泛應(yīng)用于系統(tǒng)級開發(fā)的高效編程語言,而JSON是一種輕量級的數(shù)據(jù)交換格式,常用于前后端數(shù)據(jù)傳輸。在C語言中,將JSON轉(zhuǎn)化為動態(tài)對象是一種常用的操作,我們可以通過CJSON庫來實(shí)現(xiàn)。CJSON庫是一個用C語言編寫的JSON解析器和生成器,通過使用CJSON庫可以快速簡單地將JSON數(shù)據(jù)轉(zhuǎn)換為C語言中的動態(tài)對象。
#include#include "cjson.h" int main() { const char *json_str = "{\"name\":\"Tom\", \"age\":20}"; cJSON *root = cJSON_Parse(json_str); // 將JSON字符串解析為JSON對象 if(root != NULL) { // 判斷是否解析成功 cJSON *name = cJSON_GetObjectItem(root, "name"); // 獲取鍵為name的值 cJSON *age = cJSON_GetObjectItem(root, "age"); // 獲取鍵為age的值 if(name != NULL && age != NULL) { // 判斷獲取是否成功 printf("name: %s, age: %d\n", name->valuestring, age->valueint); // 輸出結(jié)果 } cJSON_Delete(root); // 釋放JSON對象內(nèi)存 } return 0; }
在上述代碼中,我們首先定義了一個JSON字符串,然后通過調(diào)用cJSON_Parse函數(shù)將其解析為JSON對象。其中,cJSON_Parse函數(shù)返回的是一個cJSON類型的指針,這個指針指向的是JSON對象的根節(jié)點(diǎn)。接著,我們使用cJSON_GetObjectItem函數(shù)獲取JSON對象中鍵為name和age的值,獲取到的結(jié)果會封裝在cJSON類型的指針對象中。最后,我們通過訪問cJSON對象中的valuestring和valueint成員,將結(jié)果輸出到控制臺中。 最后,別忘了通過調(diào)用cJSON_Delete函數(shù)釋放JSON對象內(nèi)存,以避免內(nèi)存泄漏的問題。