JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換語(yǔ)言,它具有良好的可讀性和可擴(kuò)展性,被廣泛應(yīng)用于Web應(yīng)用中。在C語(yǔ)言中,我們可以使用第三方庫(kù)來(lái)解析JSON包,以下是一個(gè)基于cJSON庫(kù)的JSON解析示例:
#include <stdio.h> #include <cJSON.h> int main() { char* json_str = "{\"name\":\"Tom\",\"age\":20,\"gender\":\"male\"}"; cJSON* root = cJSON_Parse(json_str); if (!root) { printf("Error before: [%s]\n", cJSON_GetErrorPtr()); return 1; } cJSON* name = cJSON_GetObjectItem(root, "name"); if (name) { printf("Name: %s\n", name->valuestring); } cJSON* age = cJSON_GetObjectItem(root, "age"); if (age) { printf("Age: %d\n", age->valueint); } cJSON* gender = cJSON_GetObjectItem(root, "gender"); if (gender) { printf("Gender: %s\n", gender->valuestring); } cJSON_Delete(root); return 0; }
首先,我們需要包含cJSON庫(kù)頭文件(cJSON.h);然后,定義一個(gè)json字符串并解析為cJSON對(duì)象(cJSON_Parse函數(shù));接著,使用cJSON_GetObjectItem函數(shù)獲取對(duì)象中的各個(gè)屬性值(例如name、age、gender),并打印輸出;最后,使用cJSON_Delete函數(shù)釋放資源。
需要注意的是,使用cJSON_GetObjectItem函數(shù)獲取對(duì)象屬性值時(shí),需要先檢查屬性是否存在,避免空指針異常。