在 C 語言中,我們可以使用各種庫(比如 cJSON、Jansson、JSON-c 等)來將 JSON 數據序列化成字符串或者將字符串反序列化成 JSON 數據。以下是使用 cJSON 庫實現 JSON 序列化的示例代碼。
#include <stdio.h>#include <cJSON.h>int main() { cJSON *root, *array, *item; // 創建 JSON 對象 root = cJSON_CreateObject(); array = cJSON_CreateArray(); // 添加鍵值對 cJSON_AddStringToObject(root, "name", "cJSON"); cJSON_AddNumberToObject(root, "version", 1.7); // 添加數組 cJSON_AddItemToObject(root, "authors", array); item = cJSON_CreateString("Dave Gamble"); cJSON_AddItemToArray(array, item); item = cJSON_CreateString("Mark"); cJSON_AddItemToArray(array, item); // 序列化成字符串 char *json_str = cJSON_Print(root); printf("%s\n", json_str); // 釋放內存 cJSON_Delete(root); cJSON_free(json_str); return 0; }
在上面的代碼中,我們首先創建了一個 cJSON_Object 對象 root,然后通過 cJSON_CreateXxxToObject() 和 cJSON_AddXxxToObject() 函數添加一些鍵值對和數組元素。最后,我們使用 cJSON_Print() 函數將 JSON 對象序列化成字符串。
cJSON 庫還提供了其他一些函數,比如 cJSON_Parse() 函數可以將 JSON 字符串反序列化成 cJSON_Object 對象,而 cJSON_GetObjectItem() 和 cJSON_GetArrayItem() 函數可以用于獲取對象或數組中的元素。
總而言之,使用 C 語言進行 JSON 序列化可能還需要些許手動操作,但借助 cJSON 等庫可將代碼實現的簡潔易懂。同時,我們可以自定義函數來滿足自己特殊的需求。