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

c 獲取json中特定的值

錢諍諍1年前9瀏覽0評論

C語言獲取Json中特定的值

本文介紹如何使用C語言讀取Json文件并獲取特定的值。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <jansson.h>
int main(int argc, char **argv) {
FILE *fp;
char *input_file;
char *json_string;
json_t *root;
json_error_t error;
if (argc != 3) {
fprintf(stderr, "Usage: %s <input-file> <json-object-key>\n", argv[0]);
return 1;
}
input_file = argv[1];
fp = fopen(input_file, "r");
if (fp == NULL) {
fprintf(stderr, "Failed to open %s: %s\n", input_file, strerror(errno));
return 2;
}
// 讀取Json文件,并將其存儲為字符串
fseek(fp, 0, SEEK_END);
long file_size = ftell(fp);
fseek(fp, 0, SEEK_SET);
json_string = malloc(file_size + 1);
fread(json_string, file_size, 1, fp);
json_string[file_size] = '\0';
fclose(fp);
root = json_loads(json_string, 0, &error);
free(json_string);
if (root == NULL) {
fprintf(stderr, "Json error on line %d: %s\n", error.line, error.text);
return 3;
}
// 獲取特定的值
json_t *value = json_object_get(root, argv[2]);
if (value == NULL) {
fprintf(stderr, "No such key: %s\n", argv[2]);
return 4;
}
const char *str_value = json_string_value(value);
if (str_value != NULL) {
printf("%s\n", str_value);
} else {
printf("Unable to retrieve value\n");
}
json_decref(root);
return 0;
}

以上代碼可以用于獲取Json對象中指定鍵的值。詳細的代碼注釋已經在代碼中添加。