C JSON是一種輕量級的數據格式,常用于數據交換和存儲。C JSON序列化和反序列化是C語言中常用的操作,有助于將C語言程序中的數據以C JSON格式進行轉換,方便數據的傳輸和存儲。以下是介紹C JSON序列化和反序列化的方法。
C JSON序列化可以將C語言中的數據序列化為C JSON格式的字符串,以便于數據的傳輸和存儲。C語言中有很多開源的JSON序列化庫,例如cJSON和Jansson,這些庫都提供了簡單易用的API,方便C語言程序員使用。
#include "cJSON.h" //C JSON序列化 int main() { cJSON *root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "Tom"); cJSON_AddNumberToObject(root, "age", 18); char *json = cJSON_Print(root); printf("%s\n", json); cJSON_Delete(root); free(json); return 0; }
上述代碼使用cJSON庫將一個C結構體轉換成C JSON格式的字符串,并打印出來。其中,cJSON_CreateObject用于創建一個C JSON根節點,cJSON_AddStringToObject和cJSON_AddNumberToObject用于添加字符串和數字屬性,cJSON_Print實現將C JSON格式的數據以字符串形式輸出。最后需要手動釋放內存。
C JSON反序列化可以將C JSON格式的字符串轉換為C語言中的數據,方便程序使用。同樣,cJSON和Jansson等開源庫也提供了簡單易用的API。
#include "cJSON.h" //C JSON反序列化 int main() { char *json_string = "{\"name\":\"Tom\",\"age\":18}"; cJSON *root = cJSON_Parse(json_string); char *name = cJSON_GetObjectItem(root, "name")->valuestring; int age = cJSON_GetObjectItem(root, "age")->valueint; printf("name: %s, age: %d\n", name, age); cJSON_Delete(root); return 0; }
上述代碼使用cJSON庫將一個C JSON格式的字符串轉換成C語言中的結構體,并取出其中的屬性值。其中,cJSON_Parse將C JSON格式的字符串轉換為C JSON節點,cJSON_GetObjectItem用于獲取指定節點的屬性值。最后需要手動釋放內存。
上一篇python 進程池隊列
下一篇html居中到中間代碼