隨著互聯網的快速發展,前后端分離的開發模式得到日益廣泛的應用。而在前端頁面和后端服務之間,往往需要進行數據交換,這時候 JSON 數據格式成為了一種普遍的選擇。在 C 語言中,如果需要將對象序列化為 JSON,我們可以使用一些開源的 JSON 庫來完成。
#include <stdio.h> #include <jansson.h> typedef struct _Person { const char *name; int age; } Person; int main() { Person tom = {"Tom", 18}; // 創建 JSON 對象 json_t *person = json_object(); json_object_set_new(person, "name", json_string(tom.name)); json_object_set_new(person, "age", json_integer(tom.age)); // 序列化為 JSON 字符串 char *json_string = json_dumps(person, JSON_INDENT(4)); printf("%s\n", json_string); // 釋放資源 json_decref(person); free(json_string); return 0; }
代碼中,我們首先定義了一個 Person 結構體,其包含一個字符串類型的 name 成員和一個整型的 age 成員。然后,我們使用 jansson 庫提供的函數,創建了一個 JSON 對象,添加了 name 和 age 兩個鍵值對。接下來,我們通過 json_dumps 函數將 JSON 對象序列化為字符串,并用標準輸出打印出來。
jansson 庫提供了許多 JSON 數據類型的操作函數,例如 json_integer、json_string、json_array 等。我們可以根據實際需求使用這些函數來創建 JSON 對象,并通過 json_object_set_new 或 json_array_append_new 函數將成員添加到對象中。最后,我們需要在程序結束時手動釋放 JSON 對象和字符串,以免內存泄漏。
總的來說,使用 C 語言實現 JSON 序列化雖然需要一定的編碼能力,但是也能為我們帶來很多的便利。通過將數據轉化為 JSON 格式,我們可以實現前后端之間的數據交換,從而獲取更好的用戶體驗和更高的開發效率。