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

c json中的數據

夏志豪2年前8瀏覽0評論

C語言是一種功能強大、靈活的編程語言,很適合處理各種數據。而JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,它使用易于讀寫的文本格式,可以被多種編程語言快速解析。因此,在C語言中使用JSON數據格式可以提高代碼的可讀性和數據處理的效率。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <cJSON.h>
#define FILENAME "data.json"
int main(int argc, char const *argv[])
{
// 讀取JSON文件內容
FILE *fp = fopen(FILENAME, "rb");
if (fp == NULL) {
perror("Error");
return EXIT_FAILURE;
}
fseek(fp, 0, SEEK_END);
long len = ftell(fp);
fseek(fp, 0, SEEK_SET);
char *buf = malloc(len + 1);
fread(buf, 1, len, fp);
fclose(fp);
buf[len] = '\0';
// 解析JSON數據
cJSON *root = cJSON_Parse(buf);
if (root == NULL) {
const char *error_ptr = cJSON_GetErrorPtr();
if (error_ptr != NULL) {
fprintf(stderr, "Error before: %s\n", error_ptr);
}
return EXIT_FAILURE;
}
// 遍歷JSON數據
cJSON *name = cJSON_GetObjectItemCaseSensitive(root, "name");
cJSON *age = cJSON_GetObjectItemCaseSensitive(root, "age");
cJSON *scores = cJSON_GetObjectItemCaseSensitive(root, "scores");
printf("Name: %s\n", cJSON_Print(name));
printf("Age: %d\n", cJSON_GetNumberValue(age));
printf("Scores:\n");
cJSON *score = NULL;
cJSON_ArrayForEach(score, scores) {
printf("\t%s\n", cJSON_Print(score));
}
// 釋放內存
cJSON_Delete(root);
free(buf);
return EXIT_SUCCESS;
}

以上代碼演示了如何使用cJSON庫解析JSON數據。首先,需要讀取JSON文件的內容,然后使用cJSON_Parse()函數解析JSON數據。接著,使用cJSON_GetObjectItemCaseSensitive()函數獲取JSON數據中的對象和數組。最后,使用cJSON_Print()函數格式化輸出JSON數據。

總的來說,通過使用cJSON庫,C語言可以輕松地處理JSON數據,增強了其對各種數據的處理能力。