隨著互聯網的發展,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對象中某個鍵對應的值。
上一篇envi打開出現json
下一篇c 二維數組轉換json