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

c json輸出

李中冰2年前8瀏覽0評論

JSON是一種輕量級的數據交換格式,其在C語言中的輸出可以通過第三方庫實現。本文將通過介紹cJSON庫的基本用法,讓讀者了解如何在C語言中進行JSON數據的輸入輸出。

首先,我們需要引用cJSON庫??梢灾苯訌墓倬W上下載源碼,并將源碼中的cJSON.h和cJSON.c文件導入項目中。接下來,我們可以通過下面的代碼來手動構造一些JSON數據。

cJSON *root = cJSON_CreateObject();
cJSON *name = cJSON_CreateString("John");
cJSON *age = cJSON_CreateNumber(25);
cJSON *hobbies = cJSON_AddArrayToObject(root, "hobbies");
cJSON_AddItemToArray(hobbies, cJSON_CreateString("reading"));
cJSON_AddItemToArray(hobbies, cJSON_CreateString("swimming"));
cJSON_AddItemToObject(root, "name", name);
cJSON_AddItemToObject(root, "age", age);
char *json_str = cJSON_Print(root);
printf("%s\n", json_str);

在上述代碼中,我們首先使用cJSON_CreateObject創建了一個空的JSON對象root。然后,我們通過cJSON_CreateStringcJSON_CreateNumber創建了兩個字符串和一個數字類型的JSON數據,并將它們添加到root對象中。接下來,我們又通過cJSON_AddArrayToObjectcJSON_CreateString創建了一個字符串類型的數組并將其添加到了root對象中。最后,我們使用cJSON_Print將JSON對象打印成字符串并輸出到控制臺。

除了手動構造JSON數據外,我們還可以通過字符串解析的方式將JSON數據轉換成C語言中的數據結構。下面的代碼演示了如何將一個JSON字符串解析成一個C語言中的結構體。

typedef struct {
char *name;
int age;
char **hobbies;
int hobbies_size;
} Person;
char *json_str = "{
\"name\": \"John\",
\"age\": 25,
\"hobbies\": [\"reading\", \"swimming\"]
}";
cJSON *json = cJSON_Parse(json_str);
Person person;
person.name = cJSON_GetObjectItem(json, "name")->valuestring;
person.age = cJSON_GetObjectItem(json, "age")->valueint;
cJSON *hobbies_array = cJSON_GetObjectItem(json, "hobbies");
person.hobbies_size = cJSON_GetArraySize(hobbies_array);
person.hobbies = (char **) malloc(sizeof(char *) * person.hobbies_size);
for (int i = 0; i< person.hobbies_size; i++) {
char *hobby = cJSON_GetArrayItem(hobbies_array, i)->valuestring;
person.hobbies[i] = hobby;
}
cJSON_Delete(json);

在上述代碼中,我們首先定義了一個結構體Person用于存儲JSON數據。然后,我們手動構造了一個JSON字符串,并通過cJSON_Parse將它解析成一個JSON對象json。接下來,我們通過cJSON_GetObjectItemcJSON_GetArrayItem從JSON對象中取出相應的值,并將它們賦值給結構體person中對應的字段。最后,我們通過cJSON_Delete釋放了JSON對象。

我們可以發現,使用cJSON庫能夠方便地進行JSON數據的輸入輸出,大大提高了C語言處理JSON數據的效率。希望本文對大家有所幫助。