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

c web服務(wù)端 json

林子帆2年前8瀏覽0評論

C web服務(wù)端 json

Json是一種輕量級的數(shù)據(jù)交換格式,我們經(jīng)常會在網(wǎng)絡(luò)請求過程中使用到它,比如在API接口中,我們通常會以json的格式返回數(shù)據(jù)。在C web服務(wù)端中,我們同樣需要對json進(jìn)行解析和生成。

解析json

我們可以使用開源的json庫cJSON來解析json。假設(shè)我們有一個json字符串如下:
{
"name": "John Smith",
"age": 30,
"isMarried": true,
"hobbies": ["reading", "coding", "swimming"]
}
我們可以使用如下代碼來解析:
cJSON* root = cJSON_Parse(json_str);
char* name = cJSON_GetObjectItem(root, "name")->valuestring;
int age = cJSON_GetObjectItem(root, "age")->valueint;
bool is_married = cJSON_GetObjectItem(root, "isMarried")->valueint;
cJSON* hobbies_array = cJSON_GetObjectItem(root, "hobbies");
for (int i = 0; i< cJSON_GetArraySize(hobbies_array); i++) {
cJSON* hobby = cJSON_GetArrayItem(hobbies_array, i);
printf("%s\n", hobby->valuestring);
}
cJSON_Delete(root);

生成json

我們同樣可以使用cJSON庫來生成json。假設(shè)我們有一個結(jié)構(gòu)體:
struct Person {
char name[32];
int age;
bool is_married;
char* hobbies[3];
};
我們可以使用如下代碼來生成json:
cJSON* root = cJSON_CreateObject();
cJSON_AddStringToObject(root, "name", person.name);
cJSON_AddNumberToObject(root, "age", person.age);
cJSON_AddBoolToObject(root, "isMarried", person.is_married);
cJSON* hobbies_array = cJSON_CreateArray();
for (int i = 0; i< 3; i++) {
cJSON_AddItemToArray(hobbies_array, cJSON_CreateString(person.hobbies[i]));
}
cJSON_AddItemToObject(root, "hobbies", hobbies_array);
char* json_str = cJSON_Print(root);
cJSON_Delete(root);

總結(jié)

使用cJSON庫,我們可以在C web服務(wù)端輕松地解析和生成json。在實(shí)際項目中,我們需要根據(jù)實(shí)際情況選擇最適合我們的json庫。