C多層JSON序列化是一種將多層次的數據結構轉換為JSON格式的過程。這種技術廣泛用于Web應用程序、API開發、嵌入式系統和其他需要在客戶端和服務器之間傳輸數據的應用程序中。
下面是一個使用C多層JSON序列化的示例:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h> #include <jansson.h> int main() { // 創建一個嵌套結構的JSON對象 json_t *root = json_object(); json_t *inner = json_object(); json_t *inner_inner = json_object(); json_t *array = json_array(); json_object_set_new(root, "name", json_string("Tom")); json_object_set_new(inner_inner, "email", json_string("tom@example.com")); json_object_set_new(inner_inner, "phone", json_string("123-456-7890")); json_object_set_new(inner, "inner_inner", inner_inner); json_object_set_new(inner, "id", json_integer(123)); json_object_set_new(inner, "status", json_boolean(true)); json_array_append_new(array, json_string("item 1")); json_array_append_new(array, json_string("item 2")); json_array_append_new(array, json_string("item 3")); json_object_set_new(root, "inner", inner); json_object_set_new(root, "array", array); // 序列化JSON對象為字符串 char *json_string = json_dumps(root, JSON_INDENT(4)); printf("%s\n", json_string); // 釋放內存 json_decref(root); free(json_string); return 0; }
這個程序首先創建了一個多層的JSON對象,其中包含三個子對象:name、inner、array。其中,inner是一個嵌套的JSON對象,它又包含了一個名為inner_inner的子對象。
接下來,程序使用json_dumps函數將JSON對象序列化為一個字符串,并通過printf函數輸出該字符串。輸出結果如下:
{ "name": "Tom", "inner": { "inner_inner": { "email": "tom@example.com", "phone": "123-456-7890" }, "id": 123, "status": true }, "array": [ "item 1", "item 2", "item 3" ] }
最后,程序通過json_decref函數釋放了JSON對象的內存。
總之,C多層JSON序列化可以幫助開發人員將復雜的數據結構轉換為JSON格式,并在客戶端和服務器之間傳輸數據。