JSON是一種常用的數據格式,在C語言中也可以通過第三方庫讀取和解析JSON數據。下面我們來介紹一些常用的C語言讀取JSON數據的庫。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main() { const char *json = "{\"name\":\"jack\",\"age\":25}\"; json_t *root; json_error_t error; root = json_loads(json, 0, &error); if(!root){ printf("json error on line %d: %s\n", error.line, error.text); return -1; } json_t *name = json_object_get(root, "name"); json_t *age = json_object_get(root, "age"); if(!json_is_string(name)){ printf("name is not a string\n"); return -1; } if(!json_is_integer(age)){ printf("age is not an integer\n"); return -1; } printf("name=%s, age=%ld\n", json_string_value(name), json_integer_value(age)); json_decref(root); return 0; }
上面的程序中,我們使用了jansson庫來解析JSON數據。其中,json_loads函數可以將一個JSON字符串加載到一個可遍歷的JSON對象中。json_object_get函數可以獲取JSON對象中指定名稱的值。