JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,經常用于 Web 應用程序的數據傳輸和存儲。C 語言也可以通過解析 JSON 數據格式文件來提取、操作和存儲數據。
解析 JSON 文件需要用到 C 語言中的 JSON 庫。目前比較常用的 JSON 庫有 cJSON 和 Jansson。下面以 cJSON 為例,介紹如何解析 JSON 數據格式文件。
#include "cJSON.h" #include <stdio.h> int main() { char *json_string = "{\"name\":\"Tom\",\"age\":18,\"gender\":\"male\"}"; cJSON *root = cJSON_Parse(json_string); if (root == NULL) { printf("Error before: [%s]\n", cJSON_GetErrorPtr()); } else { char *name = cJSON_GetObjectItem(root, "name")->valuestring; int age = cJSON_GetObjectItem(root, "age")->valueint; char *gender = cJSON_GetObjectItem(root, "gender")->valuestring; printf("Name: %s\n", name); printf("Age: %d\n", age); printf("Gender: %s\n", gender); } cJSON_Delete(root); return 0; }
在上面的代碼中,我們首先定義了一個 JSON 字符串,包含了三個屬性:name、age 和 gender。然后,我們通過 cJSON_Parse() 函數解析 JSON 文件,將其轉換為 cJSON 對象。如果解析失敗,該函數將會返回 NULL,我們可以通過 cJSON_GetErrorPtr() 函數獲取錯誤信息。否則,我們可以通過 cJSON_GetObjectItem() 函數獲取對象中的屬性值,再通過 valuestring 或 valueint 屬性獲取屬性值。
最后,我們需要通過 cJSON_Delete() 函數釋放 cJSON 對象。