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數據,增強了其對各種數據的處理能力。
上一篇vue $ set
下一篇python+泛洪填充