色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c 程序讀取json文件的內容

林玟書2年前8瀏覽0評論

c語言是一種廣泛應用于計算機科學領域的語言,它不僅可以用來開發操作系統,編寫驅動等底層程序,而且可以用于編寫各種應用程序。在開發應用程序的過程中,很多時候需要讀取json格式的文件,那么c程序如何讀取json文件的內容呢?

#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <jansson.h>
int main(int argc, char* argv[])
{
char* filename = "config.json";
/* 讀取文件 */
FILE* fp = fopen(filename, "r");
if (!fp)
{
fprintf(stderr, "無法打開文件:%s, 錯誤代碼: %d\n", filename, errno);
exit(EXIT_FAILURE);
}
/* 獲取文件大小 */
fseek(fp, 0L, SEEK_END);
long filesize = ftell(fp);
fseek(fp, 0L, SEEK_SET);
/* 讀取文件內容 */
char* buffer = (char*)malloc(filesize + 1);
fread(buffer, sizeof(char), filesize, fp);
buffer[filesize] = '\0';
fclose(fp);
/* 解析json */
json_error_t error;
json_t* root = json_loads(buffer, 0, &error);
if (!root)
{
fprintf(stderr, "解析json出錯,錯誤信息: %s\n", error.text);
exit(EXIT_FAILURE);
}
/* 讀取json內容 */
json_t* value1 = json_object_get(root, "key1");
int num = json_integer_value(value1);
printf("key1 = %d\n", num);
json_t* value2 = json_object_get(root, "key2");
const char* str = json_string_value(value2);
printf("key2 = %s\n", str);
/* 釋放資源 */
json_decref(value1);
json_decref(value2);
json_decref(root);
free(buffer);
return 0;
}

以上是一個讀取json文件的c程序示例。要讀取json文件,需要調用jansson庫提供的函數。首先,使用fopen函數打開文件,然后利用fseek和ftell函數獲取文件大小,并使用malloc函數分配內存存儲文件內容。接著,調用json_loads函數解析json,獲取json對象,最后讀取json內容。讀取完畢后,需要釋放資源。