C 反序列化 JSON 是一種非常重要的功能,該功能允許將 JSON 格式的字符串轉換為 C 語言中的結構體,以便在程序中使用和處理。
在 C 中,我們可以使用第三方庫,如 cJSON 和 Jansson,來實現反序列化 JSON 數據。下面是一個使用 cJSON 庫實現的簡單示例:
#include <stdio.h> #include <cJSON.h> typedef struct { int id; char name[20]; float score; } student; int main() { const char *json_str = "{\"id\": 123, \"name\": \"Alice\", \"score\": 92.5}"; cJSON *root = cJSON_Parse(json_str); student s = { cJSON_GetObjectItem(root, "id")->valueint, cJSON_GetObjectItem(root, "name")->valuestring, cJSON_GetObjectItem(root, "score")->valuedouble }; printf("Student ID: %d\nStudent Name: %s\nStudent Score: %.1f\n", s.id, s.name, s.score); cJSON_Delete(root); return 0; }
在上面的示例中,我們首先定義了一個名為 student 的結構體,它包含三個字段:id,name 和 score。然后,我們使用 cJSON_Parse 函數將 JSON 字符串解析為 cJSON 對象,并使用 cJSON_GetObjectItem 函數獲取每個字段的值。最后,我們將字段的值放入 student 結構體中,并輸出結果。
需要注意的是,在使用 cJSON 庫進行反序列化時,我們需要手動釋放 cJSON 對象,以避免內存泄漏。
總之,C 反序列化 JSON 對于處理 JSON 數據非常有用。通過使用第三方庫,我們可以輕松地解析和處理 JSON 數據,并將其轉換為 C 中的結構體,以便在程序中使用。
上一篇docker免流
下一篇python 開源軟件嗎