C Json對象是一種十分常用的數(shù)據(jù)類型,它能夠描述一個對象的屬性和值,每個屬性都有一個唯一的鍵,而且屬性的值可以是任意類型。在 C 中創(chuàng)建 Json 對象的最常見方法是使用 cJSON 庫。CJSON是一個用純 C 編寫的庫,它提供了一些方便的 API,可以輕松地創(chuàng)建、修改、遍歷和銷毀 Json 對象。
// 創(chuàng)建一個空白的 JSON 對象 cJSON *json = cJSON_CreateObject(); // 添加一個鍵值對 cJSON_AddStringToObject(json, "name", "John"); // 添加一個數(shù)組 cJSON *arr = cJSON_CreateArray(); cJSON_AddItemToArray(arr, cJSON_CreateNumber(1)); cJSON_AddItemToArray(arr, cJSON_CreateNumber(2)); cJSON_AddItemToArray(arr, cJSON_CreateNumber(3)); cJSON_AddItemToObject(json, "numbers", arr); // 打印 Json 對象 printf("%s\n", cJSON_Print(json)); // 釋放 Json 對象 cJSON_Delete(json);
在上面的例子中,我們創(chuàng)建了一個空的 Json 對象,添加了一個字符串類型的鍵值對,和一個數(shù)組類型的鍵值對,然后打印出了整個 Json 對象,最后釋放了它。這個例子還展示了 CJSON 庫中一些常用的 API,包括 cJSON_CreateObject()、cJSON_AddStringToObject()、cJSON_CreateArray()、cJSON_AddItemToArray()、cJSON_AddItemToObject()、cJSON_Print() 和 cJSON_Delete() 等。
CJSON 庫中還有很多其他的 API,比如 cJSON_Parse()、cJSON_GetObjectItem()、cJSON_GetArraySize()、cJSON_GetArrayItem() 等,它們可以讓我們更方便地讀取和修改 Json 對象的屬性。同時,CJSON 庫還支持將 Json 對象轉(zhuǎn)換成字符串格式,以及從字符串格式解析出 Json 對象,這些功能都為我們解析和處理 Json 數(shù)據(jù)提供了很大的便利。