欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c 讀取txt文件的完整json

錢琪琛2年前10瀏覽0評論

C語言是一種強大的編程語言,廣泛應用于各種領域。在處理文本方面,C語言也有自己的優勢。比如,可以使用C語言讀取txt文件,并解析其中的json數據。下面我們來看看C語言如何讀取一個txt文件中的完整json。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define BUFFER_SIZE 1024
int main() {
FILE* fp;
char buffer[BUFFER_SIZE];
char* json_str = NULL;
size_t json_str_len = 0;
// 打開文件
fp = fopen("data.txt", "r");
if (fp == NULL) {
printf("Failed to open file\n");
return 0;
}
// 逐行讀取文件內容,拼接成一個字符串
while (fgets(buffer, BUFFER_SIZE, fp)) {
json_str_len += strlen(buffer);
json_str = realloc(json_str, json_str_len + 1);
strcat(json_str, buffer);
}
// 輸出讀取到的json字符串
printf("%s\n", json_str);
// 關閉文件
fclose(fp);
return 0;
}

上面的代碼使用了標準C庫中的fopen和fgets函數來讀取txt文件。其中,fgets函數每次讀取一行數據,通過循環不斷讀取,然后拼接成一個完整的json字符串。

現在我們來看一下,如果data.txt文件中的內容是一個json數組,我們該如何解析數據。C語言中可以使用json-c庫來解析json數據。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <json-c/json.h>
#define BUFFER_SIZE 1024
int main() {
FILE* fp;
char buffer[BUFFER_SIZE];
char* json_str = NULL;
size_t json_str_len = 0;
// 打開文件
fp = fopen("data.txt", "r");
if (fp == NULL) {
printf("Failed to open file\n");
return 0;
}
// 逐行讀取文件內容,拼接成一個字符串
while (fgets(buffer, BUFFER_SIZE, fp)) {
json_str_len += strlen(buffer);
json_str = realloc(json_str, json_str_len + 1);
strcat(json_str, buffer);
}
// 關閉文件
fclose(fp);
// 解析json數據
json_object* json = json_tokener_parse(json_str);
// 獲取json數組長度
int array_len = json_object_array_length(json);
printf("Array Length: %d\n", array_len);
// 遍歷json數組,輸出每個元素
for (int i = 0; i< array_len; i++) {
json_object* obj = json_object_array_get_idx(json, i);
printf("Element %d: %s\n", i, json_object_to_json_string(obj));
}
// 釋放內存
free(json_str);
json_object_put(json);
return 0;
}

上面的代碼使用了json-c庫來解析json數據,并輸出了json數組的長度和每個元素的內容。

總的來說,C語言處理文本數據需要用到標準C庫中的一些函數,比如fopen和fgets函數。而對于json數據,C語言則可以使用第三方庫來處理。不管是讀取文本數據,還是解析json數據,C語言都有自己的優勢。