JSON(JavaScript Object Notation)是一種輕量級的數據交換語言,它具有良好的可讀性和可擴展性,被廣泛應用于Web應用中。在C語言中,我們可以使用第三方庫來解析JSON包,以下是一個基于cJSON庫的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庫頭文件(cJSON.h);然后,定義一個json字符串并解析為cJSON對象(cJSON_Parse函數);接著,使用cJSON_GetObjectItem函數獲取對象中的各個屬性值(例如name、age、gender),并打印輸出;最后,使用cJSON_Delete函數釋放資源。
需要注意的是,使用cJSON_GetObjectItem函數獲取對象屬性值時,需要先檢查屬性是否存在,避免空指針異常。