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

c 如何從本地接口取json數(shù)據(jù)

以C語言從本地接口取得JSON數(shù)據(jù) C語言可以通過一些第三方庫來解析和讀取JSON數(shù)據(jù),例如 cJSON 或者 Jansson。 首先,需要通過標(biāo)準(zhǔn)C庫的API來打開文件以獲取JSON數(shù)據(jù)。下面的代碼演示了如何打開并讀取一個(gè)名為 example.json 文件。
#include#includeint main() {
FILE *fp;
char c;
fp = fopen("example.json", "r"); //打開 example.json 文件
if (fp == NULL) {
printf("文件不存在!");
exit(1);
}
while (1) {
c = fgetc(fp); //逐個(gè)字符讀取文件
if (feof(fp)) { //文件結(jié)尾
break;
}
printf("%c", c); //打印文件內(nèi)容
}
fclose(fp); //關(guān)閉文件
return 0;
}
輸出的內(nèi)容將是 JSON 數(shù)據(jù)。 接下來,使用 JSON 庫來解析 JSON 數(shù)據(jù)。如下所示的代碼演示了如何使用 cJSON 庫來解析 JSON 數(shù)據(jù)。
#include#include#include "./cJSON.c" //用于解析 JSON 數(shù)據(jù)的庫
char *readJSONFile(char *filename) {
FILE *fptr;
long length;
char *data;
fptr = fopen(filename, "rb"); //以字節(jié)方式打開文件
if (fptr == NULL) {
printf("文件不存在!");
exit(1);
}
fseek(fptr, 0, SEEK_END); //將指針定位到文件末尾
length = ftell(fptr); //獲取文件長(zhǎng)度
data = (char*)malloc(length + 1); //給 data 分配內(nèi)存
memset(data, 0, length + 1); //初始化 data
fseek(fptr, 0, SEEK_SET); //將指針定位到文件開頭
fread(data, 1, length, fptr); //讀取文件數(shù)據(jù)到 data 中
fclose(fptr); //關(guān)閉文件
return data;
}
int main() {
char *data = NULL; //指向 JSON 數(shù)據(jù)的指針
cJSON *json = NULL; //指向 cJSON 數(shù)據(jù)的指針
data = readJSONFile("example.json"); //讀取 JSON 數(shù)據(jù)文件
json = cJSON_Parse(data); //解析 JSON 數(shù)據(jù)
//獲取 JSON 數(shù)據(jù)的值
cJSON *name = cJSON_GetObjectItem(json, "name");
cJSON *age = cJSON_GetObjectItem(json, "age");
cJSON *hobbies = cJSON_GetObjectItem(json, "hobbies");
printf("Name: %s\n", name->valuestring);
printf("Age: %d\n", age->valueint);
printf("Hobbies: %s\n", cJSON_PrintUnformatted(hobbies));
cJSON_Delete(json);
free(data);
return 0;
}
現(xiàn)在,該代碼應(yīng)該能夠正確地解析 JSON 數(shù)據(jù)并以適當(dāng)?shù)姆绞捷敵銎鋬?nèi)容。 cJSON 庫還提供了許多其他功能,例如修改和創(chuàng)建 JSON 數(shù)據(jù)。在使用時(shí),請(qǐng)參閱其文檔以了解其功能。