C語言是一門廣泛用于系統編程的語言,然而其處理字符串和數據結構能力相對較弱。隨著Web 2.0時代的到來,JSON格式的數據逐漸成為Web應用的標準交互格式,故需要C語言提供JSON解析庫,方便C程序員來處理這類數據。
#include <stdio.h> #include <stdlib.h> #include <jansson.h> int main() { const char *json_str = "{\"name\":\"Tom\",\"age\":21}"; json_error_t error; json_t *root = json_loads(json_str, JSON_ALLOW_NUL, &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"); const char *name_str = json_string_value(name); printf("Name: %s\n", name_str); json_t *age = json_object_get(root, "age"); int age_int = json_integer_value(age); printf("Age : %d\n", age_int); json_decref(root); return 0; }
在上述代碼中,我們使用了開源的C語言JSON庫——jansson。代碼中使用了json_loads函數解析JSON字符串,函數返回JSON對象的根,如果解析失敗則返回NULL。如果需要獲取JSON對象中的具體值,可以使用json_object_get和json_string_value等函數。解析完成后,需要用json_decref釋放內存。
C語言的JSON解析庫雖然使用起來比較復雜,但通過學習使用,我們可以有效處理JSON格式的數據,提高我們的編程效率。同時,在各種嵌入式和物聯網設備中,這種解析庫也尤為重要。