C 嵌套 JSON 解析是一種將嵌套的 JSON 數據結構解析為 C 語言中的數據類型的方法。C 語言是一種強類型語言,JSON 數據結構是一種輕量級的數據交換格式,因此,通過解析 JSON 數據結構,我們可以方便地將數據轉換為 C 語言中的類型。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main() { char *json_str = "{\"name\":\"Tom\",\"age\":20,\"address\":{\"city\":\"Beijing\",\"phone\":\"1234567\"}}"; json_t *root; json_error_t error; root = json_loads(json_str, 0, &error); if(root == NULL) { printf("Error: on line %d: %s\n", error.line, error.text); return 1; } const char *name = json_string_value(json_object_get(root, "name")); int age = json_integer_value(json_object_get(root, "age")); json_t *address = json_object_get(root, "address"); const char *city = json_string_value(json_object_get(address, "city")); const char *phone = json_string_value(json_object_get(address, "phone")); printf("Name: %s\n", name); printf("Age: %d\n", age); printf("City: %s\n", city); printf("Phone: %s\n", phone); json_decref(root); return 0; }
在上面的代碼中,我們使用了 jansson 庫來解析 JSON 數據結構。具體來說,我們通過調用 json_loads 函數將 JSON 字符串轉換為 json_t 類型的對象。然后,我們使用 json_object_get 函數獲取該對象中的字段值,并將其轉換為 C 語言中的數據類型。最后,我們使用 printf 函數將結果輸出到控制臺上。
需要注意的是,當我們使用 jansson 庫解析 JSON 數據結構時,需要先調用 json_decref 函數釋放所分配的內存,以免內存泄漏。