在C語言中,使用JSON庫可以方便地讀取JSON格式的數據。要從JSON中獲取某一特定的數據,需要通過遍歷JSON對象來查找該數據
#include <stdio.h> #include <jansson.h> int main() { const char *json_str = "{ \"name\": \"張三\", \"age\": 25, \"city\": \"北京\" }"; json_t *root; json_error_t error; root = json_loads(json_str, 0, &error); if (!root) { fprintf(stderr, "讀取JSON出錯,行 %d,列 %d: %s\n", error.line, error.column, error.text); return 1; } json_t *name = json_object_get(root, "name"); if (!json_is_string(name)) { fprintf(stderr, "“name”不是字符串類型\n"); json_decref(root); return 1; } printf("名字:%s\n", json_string_value(name)); json_decref(root); return 0; }
代碼中使用的JSON庫是jansson,使用json_loads函數可以將JSON字符串轉換為json_t結構體,在這個結構體中存放了JSON的各個部分。例如,在獲取“name”字段時,使用json_object_get函數從json_t結構體中獲取對應的json_t類型的數據。
需要注意的是,如果獲取的值不是期望的類型,可以使用json_is_xxx類型判斷。
在結束使用json_t結構體時,需要使用json_decref函數釋放內存。