C語言中有很多處理JSON數據的庫,例如cJSON和json-c等。這些庫可以很方便地將JSON數據轉換為C語言的結構體或對象。
當JSON數據文件中包含多個JSON對象時,我們需要讀取每個JSON對象并對每個對象進行解析。為了實現這個功能,需要將JSON數據文件讀取到字符串中,然后循環讀取每個JSON對象并進行解析。
#include <stdio.h> #include <cjson/cJSON.h> int main() { FILE *fp; char *json_data = NULL; long json_size = 0; fp = fopen("data.json", "r"); if (!fp) { printf("File not found\n"); return -1; } fseek(fp, 0, SEEK_END); json_size = ftell(fp); fseek(fp, 0, SEEK_SET); json_data = (char *)malloc(json_size + 1); fread(json_data, 1, json_size, fp); fclose(fp); cJSON *json = cJSON_Parse(json_data); while (json != NULL) { // Do something with the JSON object // ... json = cJSON_Parse(json_data); } free(json_data); return 0; }
在這個例子中,我們使用了cJSON庫解析JSON數據。我們讀取了data.json文件并將其讀取到字符串中,然后循環讀取每個JSON對象并對其進行解析。
注意,在每次解析JSON對象之后,需要再次重新解析JSON數據字符串,直到沒有更多的JSON對象為止。
上一篇c 讀取本地文件json
下一篇c 讀取文本json