C 結構體轉換為 JSON 格式是一個非常常見的操作,因為有時候你需要把 C 代碼中的結構體數據轉換成 JSON 格式,以便在不同的應用程序之間進行數據交換。
為了實現這個過程,你需要使用一些 JSON 庫,如 cJSON。這個庫提供了一些函數來把結構體轉換成 JSON 格式,下面是一個例子:
#include <stdio.h> #include <stdlib.h> #include <cjson/cJSON.h> typedef struct student { char *name; int age; } Student; int main(int argc, char const *argv[]) { // 創建結構體實例 Student s = { "John Doe", 20 }; // 把結構體轉換成 JSON 字符串 cJSON *root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", s.name); cJSON_AddNumberToObject(root, "age", s.age); char *jsonStr = cJSON_Print(root); // 打印 JSON 字符串 printf("%s\n", jsonStr); // 釋放內存 cJSON_Delete(root); free(jsonStr); return 0; }
在這個例子里,我們首先創建了一個名為student
的結構體,它包含name
和age
兩個屬性。
然后,我們使用 cJSON 庫提供的cJSON_CreateObject()
和cJSON_AddStringToObject()
和cJSON_AddNumberToObject()
函數把這個結構體轉換成 JSON 對象的形式。
最后,我們使用cJSON_Print()
函數把 JSON 對象轉換成字符串,并將其打印出來。
最后,我們需要注意在程序結尾處,要調用cJSON_Delete()
函數釋放內存,以及使用free()
函數釋放 JSON 字符串的內存。