C語言中常用的JSON庫為 cJSON,它支持從字符串中解析JSON數據和在JSON文件中讀寫數據。下面我們將介紹如何使用cJSON庫在JSON文件中追加數據。
//包含cJSON頭文件 #include "cJSON.h" int main(void) { //打開JSON文件 FILE* fp = fopen("./data.json", "r+"); if (!fp) { printf("Open file failed.\n"); return -1; } //獲取文件長度 fseek(fp, 0, SEEK_END); long length = ftell(fp); //讀取文件內容 fseek(fp, 0, SEEK_SET); char* buffer = (char*) malloc(sizeof(char) * (length+1)); fread(buffer, 1, length, fp); buffer[length] = '\0'; //解析JSON數據 cJSON* root = cJSON_Parse(buffer); if (!root) { printf("Parse JSON data failed: %s\n", cJSON_GetErrorPtr()); fclose(fp); return -1; } //創建新的JSON對象 cJSON* newNode = cJSON_CreateObject(); cJSON_AddStringToObject(newNode, "name", "張三"); cJSON_AddNumberToObject(newNode, "age", 20); cJSON_AddStringToObject(newNode, "email", "zhangsan@example.com"); //獲取節點數組 cJSON* nodeArray = cJSON_GetObjectItem(root, "users"); //將新對象添加到節點數組中 cJSON_AddItemToArray(nodeArray, newNode); //將修改后的JSON數據寫入文件 fseek(fp, 0, SEEK_SET); char* output = cJSON_Print(root); fwrite(output, 1, strlen(output), fp); //釋放內存并關閉文件 free(buffer); free(output); cJSON_Delete(root); fclose(fp); return 0; }
代碼中首先打開JSON文件,然后讀取文件內容并解析JSON數據。接著創建一個新的JSON對象,設置對象的鍵值對,然后獲取JSON文件中的節點數組,在其中添加新的JSON對象。最后將修改后的JSON數據重新寫入文件。
cJSON庫不僅可以在JSON文件中讀寫數據,還支持在內存中創建JSON數據并將其轉換為JSON字符串進行傳輸。對于需要使用JSON數據的應用程序來說,這將極大地簡化開發流程。
上一篇vue官方前端UI
下一篇python 讀取視頻包