C語言的字符串操作是相當(dāng)常見的操作,而JSON是現(xiàn)代互聯(lián)網(wǎng)的一種通用數(shù)據(jù)格式,因此C字符串轉(zhuǎn)JSON對象也成為了很多后臺程序員的日常操作之一。
#include#include #include #include "cJSON.h" int main() { char *str = "{\"name\":\"Tom\",\"age\":25}"; cJSON *root = cJSON_Parse(str); if (root == NULL) { printf("Error before: %s\n", cJSON_GetErrorPtr()); return 1; } cJSON *name = cJSON_GetObjectItem(root, "name"); cJSON *age = cJSON_GetObjectItem(root, "age"); printf("Name: %s, Age: %d\n", name->valuestring, age->valueint); cJSON_Delete(root); return 0; }
上述代碼中,我們使用了一些第三方的庫文件,cJSON。他提供了一些方法可以很方便地處理JSON數(shù)據(jù)。在主函數(shù)中,我們先聲明一個JSON字符串,然后使用cJSON_Parse函數(shù)將其轉(zhuǎn)換為JSON對象,會返回一個cJSON類型的指針,這里命名為root。如果轉(zhuǎn)換失敗,會返回NULL。需要注意的是,這里如果root不為NULL,則需要在使用完后釋放空間,即使用cJSON_Delete函數(shù)刪除root指針指向的對象。
接著,我們可以使用cJSON提供的其他一些方法,根據(jù)key值獲取value值,例如上述代碼中的name和age。注意,在獲取完值之后,因為cJSON_GetObjectItem返回的是一個cJSON類型的指針,需要對valuestring和valueint進行類型轉(zhuǎn)換才能賦值給普通的變量。最后記得輸出結(jié)果并退出即可。
總之,在開發(fā)中靈活使用第三方庫和API是提高開發(fā)效率的重要方法,cJSON也是一個非常不錯的JSON處理庫。了解和熟練使用cJSON,可以給你的開發(fā)工作帶來很大的幫助。