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

c 讀取json文本

錢衛國2年前8瀏覽0評論

在C語言編程中,讀取JSON文本文件是一個非常常見的操作。JSON文件通常用于存儲數據結構,因此我們需要編寫程序以便于讀取和解析它們。

下面是一個簡單的讀取JSON文件的例子:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <jansson.h>
int main()
{
FILE *fp;
char buffer[1024];
size_t nread;
json_t *root;
json_error_t error;
fp = fopen("data.json", "r");
if (!fp) {
fprintf(stderr, "Failed to open file\n");
exit(1);
}
nread = fread(buffer, 1, sizeof(buffer), fp);
fclose(fp);
root = json_loads(buffer, 0, &error);
if (!root) {
fprintf(stderr, "Failed to parse JSON: %s\n", error.text);
exit(1);
}
// 在這里可以使用JSON解析后的數據
json_decref(root);
return 0;
}

在這個例子中,我們首先打開文件并讀取文件內容到一個緩沖區。然后,我們使用json_loads函數將緩沖區中的JSON字符串轉換為JSON對象。如果解析失敗,我們將輸出錯誤信息并退出程序。

當我們成功解析JSON后,我們可以使用json_object_get、json_array_get等函數來訪問JSON對象和數組的元素。下面是一個訪問JSON對象的例子:

const char *name;
json_t *age;
name = json_string_value(json_object_get(root, "name"));
age = json_object_get(root, "age");
if (!name || !age) {
fprintf(stderr, "Invalid JSON object\n");
exit(1);
}
printf("Name: %s\n", name);
printf("Age: %d\n", json_integer_value(age));

在這個例子中,我們首先使用json_object_get函數來獲取JSON對象中的"name"和"age"屬性。然后,我們檢查是否成功獲得了這些屬性,如果失敗則輸出錯誤信息并退出程序。最后,我們使用json_string_value和json_integer_value函數來獲取屬性的值。