在很多應(yīng)用程序中,我們需要處理多個JSON對象。C語言提供了一個強(qiáng)大的庫來解析JSON數(shù)據(jù),它就是cJSON庫。
cJSON庫是一個基于C語言的輕量級JSON解析器,可以快速解析JSON對象,并將其轉(zhuǎn)換為C語言數(shù)據(jù)類型,比如:數(shù)組、字符串、數(shù)字等。
接下來,我們來看一下如何使用cJSON庫解析多個JSON對象:
// 引入頭文件 #include "cJSON.h" // 定義JSON數(shù)據(jù) const char *json_data = "{\"name\":\"Tom\", \"age\":20}"; const char *json_data2 = "{\"name\":\"Jerry\", \"age\":18}"; // 創(chuàng)建JSON對象 cJSON *json = cJSON_Parse(json_data); cJSON *json2 = cJSON_Parse(json_data2); // 獲取JSON對象中的值 const char *name = cJSON_GetObjectItem(json, "name")->valuestring; int age = cJSON_GetObjectItem(json, "age")->valueint; // 獲取第二個JSON對象中的值 const char *name2 = cJSON_GetObjectItem(json2, "name")->valuestring; int age2 = cJSON_GetObjectItem(json2, "age")->valueint; // 打印解析得到的值 printf("name: %s, age: %d\n", name, age); printf("name: %s, age: %d\n", name2, age2); // 釋放JSON對象 cJSON_Delete(json); cJSON_Delete(json2);
在上面的代碼中,我們首先引入了cJSON庫的頭文件,然后定義了兩個JSON字符串。接著,通過cJSON_Parse()函數(shù)將JSON字符串轉(zhuǎn)換為JSON對象,使用cJSON_GetObjectItem()函數(shù)獲取JSON對象中的值,最后通過printf()函數(shù)打印解析得到的值。
需要注意的是,我們在最后使用cJSON_Delete()函數(shù)來釋放JSON對象,以避免內(nèi)存泄漏。