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

C 加載文件解析json數據

林國瑞1年前8瀏覽0評論

C是一種高級編程語言,使用廣泛。在C語言中,我們可以加載文件并解析Json數據。json是一種輕量級數據交換格式,易于閱讀和編寫。通過解析Json數據,我們可以輕松地獲取數據并進行處理。

#include <stdio.h>
#include <stdlib.h>
#include <jansson.h>
int main()
{
char *filename = "data.json";
FILE *fp = fopen(filename, "r");
if (fp == NULL) 
{
printf("Error: unable to open file %s\n", filename);
exit(1);
}
fseek(fp, 0L, SEEK_END);
int file_size = ftell(fp);
fseek(fp, 0L, SEEK_SET);
char *buffer = (char *)malloc(file_size + 1);
fread(buffer, file_size, 1, fp);
fclose(fp);
json_t *root;
json_error_t error;
root = json_loads(buffer, 0, &error);
if (root == NULL)
{
printf("Error: on line %d: %s\n", error.line, error.text);
exit(1);
}
json_t *name = json_object_get(root, "name");
printf("Name: %s\n", json_string_value(name));
json_t *age = json_object_get(root, "age");
printf("Age:  %d\n", json_integer_value(age));
json_t *friends = json_object_get(root, "friends");
int i = 0;
for (i = 0; i < json_array_size(friends); i++)
{
json_t *friend = json_array_get(friends, i);
printf("Friend %d: %s\n", i + 1, json_string_value(friend));
}
json_decref(root);
free(buffer);
return 0;
}

在上面的示例代碼中,我們首先打開文件,然后讀取文件到緩沖區中。然后我們使用json_loads()函數將緩沖區中的數據解析為Json對象。然后我們可以使用json_object_get()和json_array_get()函數獲取Json對象中的數據,并使用json_string_value()和json_integer_value()函數獲取該數據的值。

在最后,我們使用json_decref()函數釋放該Json對象,然后使用free()函數釋放緩沖區。