在C語言中,我們可以通過讀取文件來接收JSON數據。這里我們假設JSON文件是base64編碼的,并且我們想要將其解碼。以下是可以實現此目標的代碼:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <openssl/bio.h> #include <openssl/evp.h> int main() { char* filename = "data.json"; FILE* fp = fopen(filename, "r"); if(fp == NULL) { fprintf(stderr, "Failed to open file %s\n", filename); return 1; } // 讀取JSON文件內容到buffer中 int BUFFER_SIZE = 1024; char buffer[BUFFER_SIZE]; size_t bytesRead = fread(buffer, 1, BUFFER_SIZE, fp); fclose(fp); // 解碼base64并將結果輸出到文件 BIO* b64 = BIO_new(BIO_f_base64()); BIO* bio = BIO_new_mem_buf(buffer, bytesRead); bio = BIO_push(b64, bio); char* outputFilename = "output.json"; FILE* output = fopen(outputFilename, "w"); char outBuf[BUFFER_SIZE]; while (BIO_read(bio, outBuf, BUFFER_SIZE) >0) { fwrite(outBuf, 1, BUFFER_SIZE, output); } fclose(output); BIO_free_all(bio); return 0; }
在這個示例中,我們首先打開文件以讀取JSON內容。然后,我們使用OpenSSL庫中的BIO來完成base64解碼。最后,我們將解碼后的內容寫入輸出文件中。
需要注意的是,此代碼僅處理JSON文件的第一個1024個字節。如果你的JSON文件更大,你需要使用不同的方法從文件中讀取更多的內容。