在處理數據時,經常需要將多個JSON文件合并為一個文件以便于處理。這個過程在C語言中也很簡單,只需要使用JSON-C庫中的一些函數即可實現。下面我們來看這個過程的代碼實現。
首先,我們需要定義一個JSON對象,表示最終的合并結果:
json_object *result = json_object_new_object();
然后,我們需要讀取多個JSON文件,將它們的內容合并到上面定義的JSON對象中:
char buf[BUFSIZ] = {0}; FILE *fp = fopen("file1.json", "r"); if (!fp) { perror("Failed to open file"); return -1; } while (fgets(buf, sizeof buf, fp)) { json_object *obj = json_tokener_parse(buf); json_object_object_foreach(obj, key, val) { json_object_object_add(result, key, val); } json_object_put(obj); } fclose(fp); fp = fopen("file2.json", "r"); if (!fp) { perror("Failed to open file"); return -1; } while (fgets(buf, sizeof buf, fp)) { json_object *obj = json_tokener_parse(buf); json_object_object_foreach(obj, key, val) { json_object_object_add(result, key, val); } json_object_put(obj); } fclose(fp);
在上面的代碼中,我們使用了一個循環來逐行讀取JSON文件的內容,并將它們解析為JSON對象。然后,我們遍歷這個JSON對象并將其所有字段添加到之前定義的JSON對象中。
最后,我們可以將合并后的JSON對象寫入文件:
fp = fopen("result.json", "w"); if (!fp) { perror("Failed to open file"); return -1; } fprintf(fp, "%s", json_object_to_json_string(result)); fclose(fp);
在這個代碼中,我們使用了json_object_to_json_string
函數將JSON對象轉換為字符串,并將其寫入文件。
這就是C語言中將多個JSON文件合并為一個文件的方法。