在 C 語言中,我們常用的數據表示方法是結構體,而 JSON(JavaScript Object Notation)是一種表示數據的格式,在 Web 開發中廣泛使用。在 Web 應用中,我們常常需要將后臺返回的數據以 JSON 格式返回給前端頁面,所以在 C 語言中,編寫一個簡單的函數將結構體轉換成 JSON 格式非常有用。
下面是一個將結構體轉換成 JSON 格式的示例代碼:
#include <stdio.h> #include <stdlib.h> #include <string.h> #define BUFFER_SIZE 1024 typedef struct User { char name[100]; int age; char gender[10]; } User; char* user_to_json(User* user) { char buffer[BUFFER_SIZE] = ""; sprintf(buffer, "{\"name\": \"%s\", \"age\": %d, \"gender\": \"%s\"}", user->name, user->age, user->gender); return strdup(buffer); } int main() { User user = {"張三", 20, "男"}; char* json = user_to_json(&user); printf("%s\n", json); free(json); return 0; }
在上面的代碼中,我們定義了一個結構體 User,表示一個用戶的基本信息。然后我們編寫了一個將 User 轉換成 JSON 格式的函數 user_to_json,它通過 sprintf 函數將結構體中的數據格式化成 JSON 格式字符串,并使用 strdup 函數將 JSON 字符串復制一份,以防止被釋放掉。
在 main 函數中,我們初始化了一個 User 對象,調用 user_to_json 函數將 User 轉換成 JSON 格式字符串,并輸出到控制臺上。最后,我們使用 free 函數釋放掉剛才復制的 JSON 字符串的內存空間。
在 Web 應用中,我們可以將 user_to_json 函數封裝成一個返回 JSON 格式字符串的 API,然后在瀏覽器端使用 AJAX 技術調用該 API,將后臺的數據以 JSON 格式傳遞給前端頁面。
下一篇c讀寫json