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

c 從json字符串取數據類型

錢斌斌1年前8瀏覽0評論

隨著互聯網的發展,json作為一種輕量級的數據交換格式,被廣泛應用于各種場合。在C語言中,如何從json字符串中取出數據類型呢?下面介紹一個實現方法。

#include <stdio.h>
#include <jansson.h>
int main() {
char *json_string = "{\"name\":\"張三\",\"age\":18,\"score\":[70,80,90]}";
json_t *root;
json_error_t error;
root = json_loads(json_string, 0, &error);
if (!root) {
printf("json加載失敗:%s\n", error.text);
return 1;
}
json_t *name = json_object_get(root, "name");
json_t *age = json_object_get(root, "age");
json_t *score = json_object_get(root, "score");
if (!json_is_string(name)) {
printf("name不是字符串類型\n");
} else {
const char *s = json_string_value(name);
printf("name:%s\n", s);
}
if (!json_is_integer(age)) {
printf("age不是整型\n");
} else {
int i = json_integer_value(age);
printf("age:%d\n", i);
}
if (!json_is_array(score)) {
printf("score不是數組類型\n");
} else {
size_t i;
json_t *value;
printf("score:");
json_array_foreach(score, i, value) {
if (!json_is_integer(value)) {
printf("[%d]不是整型, ", i);
} else {
int s = json_integer_value(value);
printf("%d, ", s);
}
}
printf("\n");
}
json_decref(root);
return 0;
}

以上代碼實現了從json字符串中取出數據類型,并進行了判斷和輸出。json_is_xxx函數用于判斷數據類型是否符合預期,xxx部分表示需要判斷的數據類型,如string、integer、array等。json_object_get函數用于獲得json對象中某個鍵對應的值。