在C語言中獲取JSON數據是一項很常見的任務,這個過程需要使用一些特定的函數來解析JSON字符串。本文將介紹C語言中獲取JSON數據的方法。
#include <stdio.h> #include <stdlib.h> #include <jansson.h> int main() { const char *json_string = "{\"name\": \"小明\", \"age\": 27}"; json_t *root; json_error_t error; root = json_loads(json_string, 0, &error); if (!root) { fprintf(stderr, "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"); printf("%s is %d years old\n", json_string_value(name), json_integer_value(age)); json_decref(name); json_decref(age); json_decref(root); return 0; }
代碼解析:
我們用例子來演示C語言如何獲取JSON數據。首先,需要把JSON字符串放入一個const char變量中。
const char *json_string = "{\"name\": \"小明\", \"age\": 27}";
接下來,用json_loads函數解析JSON字符串,獲取JSON對象。
root = json_loads(json_string, 0, &error);
然后,使用json_object_get函數,通過傳入鍵的名稱,從JSON對象中獲取對應的值。
json_t *name = json_object_get(root, "name"); json_t *age = json_object_get(root, "age");
最后,使用json_string_value和json_integer_value函數,將獲取到的數據類型轉換成所需的類型。
printf("%s is %d years old\n", json_string_value(name), json_integer_value(age));
總結:
在C語言中獲取JSON數據需要使用jansson庫,使用這個庫可以輕松地處理數據。上述例子中,使用了幾個常見的函數,如json_loads、json_object_get、json_string_value和json_integer_value等。