在使用 C 語言讀取 JSON 格式數(shù)據(jù)之前,我們需要先了解一下什么是 JSON。JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式,使用鍵值對的形式來描述數(shù)據(jù)。JSON 常用于前端和后端之間的數(shù)據(jù)交互,由于其簡潔、易于閱讀和編寫的特點,越來越受到開發(fā)者們的歡迎。
C 語言并沒有原生支持 JSON 格式數(shù)據(jù)的讀取,但我們可以通過使用第三方庫來實現(xiàn)。其中,最常用的 JSON 解析庫是 cJSON,它非常輕量級,所以十分適合在嵌入式設(shè)備或資源有限的情況下使用。
下面是一個使用 cJSON 庫讀取 JSON 數(shù)據(jù)的示例:
#include "cJSON.h" int main() { char *json = "{\"name\":\"張三\",\"age\":18,\"hobbies\":[\"足球\",\"籃球\"]}"; cJSON *root = cJSON_Parse(json); if (root != NULL) { cJSON *name = cJSON_GetObjectItem(root, "name"); printf("name: %s\n", cJSON_GetStringValue(name)); cJSON *age = cJSON_GetObjectItem(root, "age"); printf("age: %d\n", cJSON_GetNumberValue(age)); cJSON *hobbies = cJSON_GetObjectItem(root, "hobbies"); cJSON *hobby = NULL; printf("hobbies: "); cJSON_ArrayForEach(hobby, hobbies) { printf("%s ", cJSON_GetStringValue(hobby)); } cJSON_Delete(root); } return 0; }
在上面的示例中,我們首先手動創(chuàng)建一個 JSON 字符串,然后使用 cJSON_Parse 函數(shù)將其解析成 cJSON 結(jié)構(gòu)體。接著,我們通過 cJSON_GetObjectItem 函數(shù)獲取 JSON 對象的具體屬性值,并將其打印出來。最后,我們通過 cJSON_Delete 函數(shù)釋放 cJSON 結(jié)構(gòu)體。
需要注意的是,cJSON_Library 將字符串解析成的 object(也就是用上面的示例中的 cJSON_Parse 解析出來的 root)在生命周期結(jié)束后,需要通過 cJSON_Delete 釋放。否則,就會存在內(nèi)存泄漏。
下一篇python 求個稅