JSON(JavaScript Object Notation)是一種輕量級的數據交換格式。在C語言中,有許多JSON實體庫可以實現JSON數據的編碼和解碼。其中較為常用的是cJSON。
cJSON是一個C語言實現的輕量級JSON庫。它提供了一組API來解析和構建JSON數據。cJSON的API簡單并且易于使用,這使得它成為了開發人員的首選。
下面是一個簡單的cJSON例子:
cJSON* root = NULL; root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "Alice"); cJSON_AddNumberToObject(root, "age", 18); cJSON* array = cJSON_CreateArray(); cJSON* item1 = cJSON_CreateObject(); cJSON_AddStringToObject(item1, "hobby", "reading"); cJSON_AddNumberToObject(item1, "id", 1001); cJSON_AddItemToArray(array, item1); cJSON* item2 = cJSON_CreateObject(); cJSON_AddStringToObject(item2, "hobby", "swimming"); cJSON_AddNumberToObject(item2, "id", 1002); cJSON_AddItemToArray(array, item2); cJSON_AddItemToObject(root, "hobbies", array); char* jsonStr = cJSON_Print(root); printf("%s", jsonStr);
上面的例子創建了一個JSON對象root,并添加了字符串"name"和數字"age",還添加了一個"hobbies"的JSON數組,該數組包含了兩個JSON對象。最后將該root對象轉為JSON字符串并打印出來。
cJSON的API操作都是以cJSON類型的對象作為參數的。大多數情況下,我們需要首先創建一個根節點,并添加或者獲取其中的屬性值。
在使用cJSON時,需要注意內存管理。cJSON庫沒有實現自動內存管理,所以需要手動釋放內存。可以通過調用cJSON_Delete來釋放一個cJSON對象,也可以通過調用cJSON_free來釋放一個堆分配的字符串。
總的來說,cJSON是一款非常方便的輕量級JSON庫,可以輕松實現JSON數據的編碼和解碼。它具有簡單的API和良好的性能,非常適合對內存和性能有一定要求的應用場景。
下一篇go json文件讀取