JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,用于易于閱讀和編寫的文本格式。C語言中也有很多的庫可以用于JSON序列化和反序列化,例如:json-c、cJSON、jansson等。
本文將重點介紹C語言中使用json-c庫進行JSON序列化的方法。
#include <stdio.h> #include <stdlib.h> #include <json-c/json.h> int main() { struct json_object *my_obj = json_object_new_object(); //創建一個JSON對象 json_object_object_add(my_obj, "name", json_object_new_string("Tom")); //向對象中添加屬性 json_object_object_add(my_obj, "age", json_object_new_int(18)); json_object_object_add(my_obj, "gender", json_object_new_string("male")); const char *result = json_object_to_json_string(my_obj); //將JSON對象序列化為字符串 printf("JSON字符串為:%s\n", result); json_object_put(my_obj); //釋放JSON對象 return 0; }
上述代碼首先創建了一個JSON對象my_obj,然后向對象中添加了三個屬性:name、age和gender,分別為字符串類型、整型和字符串類型。接著使用json_object_to_json_string()函數將my_obj序列化為JSON字符串,最后釋放my_obj對象。
執行上述代碼,輸出結果如下:
JSON字符串為:{"gender":"male","name":"Tom","age":18}
可以看到,JSON字符串與我們向my_obj中添加的屬性一一對應,格式清晰易讀。
總之,使用C語言進行JSON序列化,可以輕松地將復雜的數據類型轉換為JSON字符串,方便傳輸和存儲。