c 取 json 字段是一項(xiàng)常見的任務(wù),可以用于處理從網(wǎng)絡(luò)或本地獲取的數(shù)據(jù)。下面是一個簡單的例子:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main() { char *json = "{\"name\": \"Tom\", \"age\": 18}"; json_t *root = NULL; json_error_t error; root = json_loads(json, 0, &error); if (root) { json_t *name = json_object_get(root, "name"); if (name) { const char *name_str = json_string_value(name); printf("name: %s\n", name_str); } json_t *age = json_object_get(root, "age"); if (age) { int age_int = json_integer_value(age); printf("age: %d\n", age_int); } json_decref(root); } else { fprintf(stderr, "json error on line %d: %s\n", error.line, error.text); } return 0; }
這個例子中,我們使用了 jansson 庫來解析 json 字符串。首先,我們把 json 字符串轉(zhuǎn)成 json_t 對象,然后使用 json_object_get 函數(shù)獲取對應(yīng)的字段對象,最后使用 json_string_value 或 json_integer_value 來獲取字段值。
需要注意的是,在使用完 json_t 對象后需要使用 json_decref 函數(shù)來釋放對象。