動態轉JSON是一種將C程序中的數據結構轉換成JSON格式的方法。在C程序中,可以使用結構體和變量來表示數據。JSON作為一種輕量級的數據交換格式,廣泛用于Web應用程序和現代應用程序的數據傳輸。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> typedef struct { char name[20]; int age; char address[50]; } Person; int main(){ Person p = {"Alex", 25, "Baker Street 221B, London"}; json_t *root = json_object(); json_object_set_new(root, "name", json_string(p.name)); json_object_set_new(root, "age", json_integer(p.age)); json_object_set_new(root, "address", json_string(p.address)); char *json_str = json_dumps(root, JSON_INDENT(4)); printf("%s\n", json_str); free(json_str); json_decref(root); return 0; }
以上代碼示例中,定義了一個Person結構體,用于存儲人名、年齡和地址信息。在主函數中,通過調用json_t類型的json_object_set_new()函數將數據轉換成JSON格式。json_t類型是一個指向JSON值的指針類型,表示JSON數據結構中的一個節點。
在本例中,json_object_set_new()函數的第一個參數是JSON對象,該函數將JSON對象與JSON鍵和值進行關聯。json_string()和json_integer()函數用于將結構體中的相應值轉換成JSON字符串和JSON整數。最后,使用json_dumps()函數將JSON對象序列化成JSON字符串,將其打印到控制臺上。
在實際應用中,可以使用cJSON、Jansson等開源庫來實現C程序與JSON數據的交互,從而輕松實現數據的序列化和反序列化。
上一篇c 壓縮json
下一篇c 匿名類轉json