欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c json化

江奕云2年前8瀏覽0評論

JSON是一種輕量級的數據交換格式,近些年來被廣泛應用于前端和后端之間的數據傳輸。C語言也有許多優秀的JSON解析庫,比如Jansson和 cJSON等。

接下來以 cjson為例,介紹如何將C語言中的結構體和數組轉換為JSON格式的字符串。

#include <stdio.h>
#include <stdlib.h>
#include <cjson/cJSON.h>
typedef struct person {
char name[20];  
int age;  
char gender;  
} Person;
int main() {
// 創建一個Person結構體變量
Person person = {"Alex", 18, 'M'};
// 將結構體轉換為JSON格式的字符串
cJSON* json = cJSON_CreateObject();
cJSON_AddStringToObject(json, "name", person.name);
cJSON_AddNumberToObject(json, "age", person.age);
cJSON_AddStringToObject(json, "gender", &person.gender);
char* jsonStr = cJSON_Print(json);
printf("Person structure in JSON format: %s\n", jsonStr);
// 釋放內存
cJSON_Delete(json);
free(jsonStr);
// 創建一個Person數組
Person people[3] = {{"Alex", 18, 'M'}, {"Bob", 20, 'M'}, {"Cindy", 22, 'F'}};
cJSON* jsonArray = cJSON_CreateArray();
for (int i = 0; i < 3; i++) {
cJSON* item = cJSON_CreateObject();
cJSON_AddStringToObject(item, "name", people[i].name);
cJSON_AddNumberToObject(item, "age", people[i].age);
cJSON_AddStringToObject(item, "gender", &people[i].gender);
cJSON_AddItemToArray(jsonArray, item);
}
char* jsonArrayStr = cJSON_Print(jsonArray);
printf("Person array in JSON format: %s\n", jsonArrayStr);
// 釋放內存
cJSON_Delete(jsonArray);
free(jsonArrayStr);
return 0;
}

在上述代碼中,我們定義了一個Person結構體和一個Person數組,并使用cJSON庫中的函數將結構體和數組轉換為JSON格式的字符串。

對于結構體,我們可以使用cJSON_CreateObject()函數創建一個JSON對象,然后使用cJSON_AddStringToObject()和cJSON_AddNumberToObject()等函數將結構體的成員加入JSON中。

對于數組,我們可以使用cJSON_CreateArray()函數創建一個JSON數組對象,并使用cJSON_CreateObject()函數創建每一個JSON對象,然后將這些JSON對象加入數組中。

使用cJSON編寫JSON化的代碼可以方便地將C語言中的結構體和數組轉換為JSON格式的字符串,便于C語言和其他語言之間的數據傳輸與交換。