C語言中如何判斷一個(gè)文件是否為JSON格式呢?下面我們來介紹一下。
#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX_BUF_SIZE 4096 int is_json_file(const char *file_path) { FILE *fp = fopen(file_path, "r"); if (fp == NULL) { printf("Error: failed to open file.\n"); return 0; } char buf[MAX_BUF_SIZE]; size_t count = fread(buf, sizeof(char), MAX_BUF_SIZE, fp); fclose(fp); if (count<= 0) { printf("Error: failed to read file.\n"); return 0; } // 檢查文件開頭和結(jié)尾是否為 '{'或 '[' if (buf[0] == '{' || buf[0] == '[') { if (buf[count - 2] == '}' || buf[count - 2] == ']') return 1; else return 0; } else { return 0; } } int main() { const char *file_path = "test.json"; int is_json = is_json_file(file_path); if (is_json) { printf("%s is a valid JSON file.\n", file_path); } else { printf("%s is not a valid JSON file.\n", file_path); } return 0; }
上面的代碼中,我們使用了fopen()來打開文件,使用fread()來讀取文件內(nèi)容并保存到緩沖區(qū)中,然后檢查文件開頭和結(jié)尾是否為'{'或'[',如果是,則判斷為JSON格式文件。
通過調(diào)用is_json_file()函數(shù),我們可以判斷文件是否為JSON格式,并在main()函數(shù)中輸出結(jié)果。