在C語言中,可以通過使用第三方庫或自己手動解析字符串的方式來組織JSON數據,下面我們以CJSON這個常用JSON庫為例來介紹如何組織JSON數據。
/* 引入CJSON庫 */ #include "cJSON.h" /* 創建一個JSON對象 */ cJSON *root = cJSON_CreateObject(); /* 添加一個字符串類型的key-value對 */ cJSON_AddStringToObject(root, "name", "Tom"); /* 添加一個數字類型的key-value對 */ cJSON_AddNumberToObject(root, "age", 18); /* 添加一個數組對象 */ cJSON *hobbies = cJSON_CreateArray(); cJSON_AddItemToArray(hobbies, cJSON_CreateString("reading")); cJSON_AddItemToArray(hobbies, cJSON_CreateString("music")); cJSON_AddItemToObject(root, "hobbies", hobbies); /* 生成JSON字符串 */ char* json_str = cJSON_Print(root); /* 打印生成的JSON字符串 */ printf("%s\n", json_str); /* 釋放內存 */ cJSON_Delete(root); free(json_str);
如上所示,創建JSON對象后可以通過cJSON_AddxxxxToObject()函數來添加各種類型的鍵值對,同時也可以創建數組對象然后添加到JSON對象中,最后通過cJSON_Print()函數將JSON對象轉為JSON字符串輸出。其中,cJSON_CreateObject()、cJSON_CreateArray()、cJSON_CreateString()等函數用于創建對應類型的JSON對象。
需要注意的是,在使用完JSON對象后需要手動銷毀內存,其中cJSON_Delete()用來銷毀JSON對象,free()用于釋放生成的JSON字符串的內存。