在C語言中,結構體是一種非常重要的數據類型之一。通常,我們將結構體定義為一組相關的數據項的集合,方便進行數據的管理和操作。為了更好地保存和傳輸這些結構體數據,我們需要將它們轉化為JSON格式,這是一種輕量級的數據交換格式。
#include <stdio.h> #include <stdlib.h> #include <jansson.h> typedef struct { char *name; int age; float score; } Student; int main() { Student stu = {"Tom", 18, 90}; json_t *root; root = json_pack("{s:s,s:i,s:f}", "name", stu.name, "age", stu.age, "score", stu.score); char *json_string = json_dumps(root, JSON_INDENT(2)); printf("JSON string:%s\n", json_string); free(json_string); json_decref(root); return 0; }
上述代碼演示了如何將一個結構體轉化為JSON字符串。第一步,我們定義了一個名為Student的結構體,其中包含了學生的姓名、年齡和成績。接著,我們使用jansson庫中的json_t類型定義了一個名為root的JSON對象。
然后,我們利用json_pack()函數向root對象中添加了三個鍵-值對,分別對應學生的姓名、年齡和成績,并使用%s、%i和%f分別指定了鍵和對應的值的數據類型。
最后,我們使用json_dumps()函數將root對象轉化為JSON格式的字符串,并通過printf()函數打印出來。同時,我們也需要在程序結束時釋放內存,使用json_decref()函數將root對象引用計數減一,以便正確釋放內存。
下一篇vue.js課程