在C語言中,獲取Json中的值需要用到第三方庫如Jansson或 cJSON。這些庫可以幫助我們解析Json,并提供了API來獲取其中的值。
#include <jansson.h> int main() { const char *json_string = "{\"name\": \"John\", \"age\": 30, \"city\": \"New York\"}"; 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, *age, *city; name = json_object_get(root, "name"); age = json_object_get(root, "age"); city = json_object_get(root, "city"); printf("Name: %s\n", json_string_value(name)); printf("Age: %d\n", json_integer_value(age)); printf("City: %s\n", json_string_value(city)); json_decref(name); json_decref(age); json_decref(city); json_decref(root); return 0; }
在上面的代碼中,我們首先定義了一個Json字符串,然后使用json_loads函數將其解析為Json對象。接著,通過json_object_get函數獲取到Json對象中的具體值,并使用json_string_value和json_integer_value獲取字符串和整數的值。
需要注意的是,在使用完Json對象后,必須使用json_decref函數來釋放資源。