C語言中Json數組解析是一種非常常見的操作,Json數組可以用來存儲一組數據或對象,我們通常使用C語言中的Json庫來實現Json數組解析。
#include<stdio.h> #include<stdlib.h> #include<cjson/cJSON.h> //讀取Json文件 char *readJsonFile(const char *filename) { FILE *fp = fopen(filename, "r"); if(fp == NULL) { return NULL; } fseek(fp, 0, SEEK_END); long size = ftell(fp); fseek(fp, 0, SEEK_SET); char *buffer = (char *)malloc(size + 1); fread(buffer, 1, size, fp); fclose(fp); buffer[size] = '\0'; return buffer; } int main() { char *str = readJsonFile("test.json");//讀取Json文件 cJSON *root = cJSON_Parse(str);//解析Json文件 cJSON *array = cJSON_GetObjectItem(root, "array");//獲取Json數組 int size = cJSON_GetArraySize(array);//獲取Json數組長度 for(int i = 0; i < size; i++) { cJSON *item = cJSON_GetArrayItem(array, i);//獲取Json數組中的元素 printf("%d\n", cJSON_GetObjectItem(item, "id")->valueint);//輸出Json數組中的數據 } return 0; }
在上述代碼中,我們首先通過readJsonFile函數讀取Json文件,然后使用cJSON_Parse函數將Json字符串轉換成cJSON對象,接著使用cJSON_GetObjectItem函數獲取Json數組,使用cJSON_GetArraySize函數獲取Json數組長度,使用cJSON_GetArrayItem和cJSON_GetObjectItem函數獲取Json數組中的元素和數據,最后對Json數組中的數據進行輸出。