C 結構體(struct)是一種用于存儲不同類型數據的數據類型,可以用于存儲復雜的數據結構。而 JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,可以很方便地將數據以文本形式進行序列化和反序列化。在 C 語言中,我們可以使用第三方庫實現將結構體轉換為 JSON 字符串的功能。
#include <stdio.h> #include <jansson.h> typedef struct { int id; char name[20]; double price; } Product; int main() { Product p = {1, "apple", 2.5}; json_t *json_obj = json_pack("{s:i,s:s,s:f}", "id", p.id, "name", p.name, "price", p.price); char *json_str = json_dumps(json_obj, 0); printf("%s\n", json_str); free(json_str); json_decref(json_obj); return 0; }
以上代碼使用 jansson 庫實現將 Product 結構體轉換為 JSON 字符串。首先定義了 Product 結構體,包括 id、name 和 price 三個成員變量。然后定義了一個 json_t 類型的指針 json_obj,使用 json_pack 函數將結構體中的數據打包成一個 JSON 對象,其中 {s:i,s:s,s:f} 表示以字符串 s 表示整數 i、字符串 s 和浮點數 f。最后使用 json_dumps 函數將 JSON 對象轉換為 JSON 字符串,輸出后釋放內存并刪除 JSON 對象。