JSON是一種輕量級的數(shù)據(jù)交換格式,常用于前后端之間的數(shù)據(jù)傳輸。在C語言中,我們可以通過利用第三方庫來提取JSON數(shù)據(jù),并對其進行處理。
#include <stdio.h> #include <jansson.h> int main() { const char *json_str = "{\"name\": \"Alice\", \"age\": 20, \"hasCar\": false}"; json_t *root = json_loads(json_str, 0, NULL); if (!root) { printf("Failed to parse JSON. \n"); return 1; } json_t *name = json_object_get(root, "name"); // 獲取name屬性 const char *name_str = json_string_value(name); // 將name屬性轉換為字符串 json_t *age = json_object_get(root, "age"); // 獲取age屬性 int age_value = json_integer_value(age); // 將age屬性轉換為整數(shù) json_t *has_car = json_object_get(root, "hasCar"); // 獲取hasCar屬性 int has_car_value = json_boolean_value(has_car); // 將hasCar屬性轉換為布爾值 printf("Name: %s \n", name_str); printf("Age: %d \n", age_value); printf("Has Car: %d \n", has_car_value); json_decref(root); // 釋放內存 return 0; }
上述代碼利用jansson庫提取了一個JSON字符串中的name、age和hasCar屬性,并將它們轉換為C語言中的相應類型。json_loads函數(shù)用于將JSON字符串解析為json_t類型的數(shù)據(jù)結構,并返回根節(jié)點的指針。json_object_get函數(shù)則用于獲取特定節(jié)點的指針,json_xxx_value函數(shù)則用于將特定節(jié)點轉換為C語言中的相應類型。
C語言中利用第三方庫提取JSON數(shù)據(jù)十分方便,通過使用一些基本的API,我們就可以快速地將JSON數(shù)據(jù)集成到我們的C語言程序中。