JSON是一種輕量級的數(shù)據(jù)交換格式,被廣泛應(yīng)用于Web應(yīng)用程序中。在C語言中,我們可以通過讀取JSON文件來獲取數(shù)據(jù)。下面我們將介紹如何在C語言中讀取JSON。
#include <stdio.h> #include <jansson.h> int main(void) { json_error_t error; json_t *root; const char *string = "{\n" " \"name\": \"Tom\",\n" " \"age\": 20,\n" " \"hobby\": [\"reading\", \"running\"]\n" "}"; root = json_loads(string, 0, &error); if (!root) { fprintf(stderr, "error: %s\n", error.text); return 1; } const char *name = json_string_value(json_object_get(root, "name")); printf("Name: %s\n", name); int age = json_integer_value(json_object_get(root, "age")); printf("Age: %d\n", age); json_t *hobby = json_object_get(root, "hobby"); size_t i; for (i = 0; i < json_array_size(hobby); i++) { json_t *item = json_array_get(hobby, i); printf("Hobby %d: %s\n", i+1, json_string_value(item)); } json_decref(root); return 0; }
以上代碼主要使用了jansson這個庫,它提供了一些JSON的解析和生成函數(shù)。我們通過json_loads函數(shù)將JSON字符串解析為json_t對象,然后使用json_object_get和json_array_get函數(shù)獲取對象或數(shù)組中的成員,最后輸出其值。注意,對于字符串類型,需要先用json_string_value轉(zhuǎn)換為C風(fēng)格字符串。