C語言是一門廣泛應用于嵌入式系統開發、操作系統及網絡應用開發的高級編程語言。它具有語法簡潔、靈活性高、執行速度快等特點,因此在計算機領域得到了廣泛的應用。在C語言中,我們可以借助第三方庫解析JSON格式的數據,方便地將復雜的JSON數據處理成易于訪問的數據結構。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main() { // 定義JSON字符串 char *json_str = "{" "\"name\": \"Jack\"," "\"age\": 20," "\"address\": {" "\"city\": \"Shanghai\"," "\"country\": \"China\"" "}" "}"; // 解析JSON字符串 json_error_t error; json_t *json_obj = json_loads(json_str, 0, &error); // 獲取JSON對象中的鍵值對 const char *name = json_string_value(json_object_get(json_obj, "name")); int age = json_integer_value(json_object_get(json_obj, "age")); json_t *address = json_object_get(json_obj, "address"); const char *city = json_string_value(json_object_get(address, "city")); const char *country = json_string_value(json_object_get(address, "country")); // 打印獲取到的鍵值對 printf("name: %s\nage: %d\naddress: %s, %s\n", name, age, city, country); // 釋放內存 json_decref(json_obj); return 0; }
上述代碼中,我們使用了第三方的JSON解析庫son庫。首先,我們定義了一個JSON字符串,并通過json_loads函數將該字符串解析成JSON對象,之后通過json_object_get函數獲取JSON對象中的鍵值對。其中,json_string_value可以將獲取到的值轉化為字符串類型,json_integer_value可以將獲取到的值轉化為整型類型。
最后,我們打印獲取到的鍵值對,并通過json_decref函數釋放內存。