在C語言中,將一個結構體或者數組轉換成JSON字符串是非常常見的需求。JSON是一種輕量級的數據交換格式,可以方便地在不同的應用之間傳遞數據。下面介紹如何使用C語言將結構體或數組轉換為JSON字符串。
#include#include #include #include int main() { // 創建一個結構體 typedef struct { char *name; int age; char *gender; int id; } Person; // 創建一個數組 Person persons[3] = { {"Tom", 20, "male", 1001}, {"Mary", 22, "female", 1002}, {"Jack", 24, "male", 1003}, }; // 創建一個JSON數組 cJSON *jsonArray = cJSON_CreateArray(); for (int i = 0; i< 3; i++) { // 創建一個JSON對象 cJSON *jsonObject = cJSON_CreateObject(); // 添加屬性 cJSON_AddItemToObject(jsonObject, "name", cJSON_CreateString(persons[i].name)); cJSON_AddItemToObject(jsonObject, "age", cJSON_CreateNumber(persons[i].age)); cJSON_AddItemToObject(jsonObject, "gender", cJSON_CreateString(persons[i].gender)); cJSON_AddItemToObject(jsonObject, "id", cJSON_CreateNumber(persons[i].id)); // 將對象添加到數組中 cJSON_AddItemToArray(jsonArray, jsonObject); } // 將JSON數組轉換成字符串 char *jsonString = cJSON_Print(jsonArray); // 輸出結果 printf("%s\n", jsonString); // 釋放內存 cJSON_Delete(jsonArray); free(jsonString); return 0; }
在上面的代碼中,我們首先定義了一個Person結構體和一個Person數組。然后我們使用cJSON庫中提供的API創建一個JSON數組,并遍歷Person數組,將每個元素轉換為一個JSON對象,再將所有JSON對象添加到JSON數組中。最后,我們使用cJSON庫中的API將JSON數組轉換成JSON字符串。
上一篇c 轉化json數組