最近越來越多的C語言開發者開始使用JSON傳輸數據。JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,它易于人閱讀和編寫,同時也易于計算機解析和生成。本文將介紹如何在C語言中使用JSON方式處理數據。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main() { 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) { printf("error: on line %d: %s\n", error.line, error.text); exit(1); } if (!json_is_object(root)) { printf("error: root is not an object\n"); json_decref(root); exit(1); } json_t *name, *age, *city; const char *name_text, *city_text; int age_int; name = json_object_get(root, "name"); if (!json_is_string(name)) { printf("error: name is not a string\n"); json_decref(root); exit(1); } name_text = json_string_value(name); age = json_object_get(root, "age"); if (!json_is_integer(age)) { printf("error: age is not an integer\n"); json_decref(root); exit(1); } age_int = json_integer_value(age); city = json_object_get(root, "city"); if (!json_is_string(city)) { printf("error: city is not a string\n"); json_decref(root); exit(1); } city_text = json_string_value(city); printf("name: %s, age: %d, city: %s\n", name_text, age_int, city_text); json_decref(root); return 0; }
上述代碼使用了jansson庫來處理JSON數據。首先將JSON字符串轉換成json_t對象,然后使用json_object_get獲取鍵值。最后用json_is_xxx來判斷數據類型,json_xxx_value獲取具體數值。
以上就是在C語言中使用JSON方式處理數據的介紹。JSON的優點在于簡潔易讀,易于解析。因此,使用JSON來傳輸數據也是非常方便的。